这是时区设置的问题
看看PHP手册的“例子 1 date() 例子”第一行多了一个 时区设置
// 设定要用的默认时区。自 PHP 51 可用
date_default_timezone_set(’UTC’);
原来php51开始,phpini里加入了datetimezone这个选项,默认情况下是关闭的,也就是显示的时间(无论用什么php命令)都是格林威治标准时间,和北京时间正好差8个小时。
如何设置可以得到正确的PHP时间。
1、修改phpini。打开phpini查找datetimezone 去掉前面的分号= 后面加Asia/Shanghai,重启apache服务器即可--缺点就是如果程序
放到别人的服务器上,不能修改phpini,那就奈何不得了。
2、在程序中添加时间的初始化的语句的 即:“date_default_timezone_set("Asia/Shanghai"); ”这个可以由程序员任意设置,我的推荐。
时区标识符,大陆内地可用的值是:PRC,Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为中国,重庆,上海,乌鲁木齐) ,Etc/GMT-8,Asia/Harbin
港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)
还有新加坡:Asia/Singapore
这样就可以实现输出的是北京时间了更详细的时区代码 时区编码 时区索引码 timezone_identifier 大家可以在官方网站中查到
永久修改:更改phpini文件中的datatimezone = PRC 这是中国时间。重启Apache服务后生效。
临时修改:在使用格式化输入时间之前,添加ini_set('datetimezone','Asia/Shanghai'); 或者data_default_timezone_set('PRC');//date_default_timezone_set() 函数设置用在脚本中所有日期/时间函数的默认时区。
从php510开始,phpini里加入了datetimezone这个选项,默认情况下是关闭的也就是显示的时间(无论用什么php命令)都是格林威治标准时间,和我们的时间(北京时间)差了正好8个小时,有以下3中方法可以恢复正常的时间。
1最简单的方法就是不要用php51以上的版本;
2如果一定要用,而且不能修改phpini,则需要在关于时间的初始化的语句的上面加上 date_default_timezone_set (XXX)。
1、首先在电脑上创建一个indexphp文件,编辑indexphp。
2、然后输入获取当天零点的时间戳,输入代码$today = strtotime(date("Y-m-d"),time());$time = strtotime($today);//获取到echo $time"<br />";//输出。
3、获取当天24点的时间戳$todayEnd = $today+606024;//家一天的时间echo $time = strtotime($todayEnd)"<br />";//输出。
4、获取前一天时间echo date("Y-m-d H:i:s",strtotime("-1 days"));。
5、以上即时间戳和前一天时间的获取。主要是对date()和strtotime()函数的灵活使用,就可以了。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)