Home  >  Article  >  Backend Development  >  取不到当前正确日期问题

取不到当前正确日期问题

WBOY
WBOYOriginal
2016-06-23 13:59:39901browse

页面代码:服务器在美国
date_default_timezone_set('PRC');     //这里设置了时区
$now_day = date('l');
$now_date = date("Y/m/d");
echo "now_day  =".$now_day."
";
echo "now_date  =".$now_date."
";
echo time();
echo "
";
echo date_default_timezone_get();
echo "
";
?>

但取到的结果为:

now_day =Thursday
now_date =2014/03/06
1394116011
PRC


总是少一天。以前没有这种情况的,要怎么搞啊。


回复讨论(解决方案)

http://bbs.csdn.net/topics/350031391

谢谢楼上,不过找不到解决办法。

声明一下:没有国外的服务器,无法实地测试
但原理是不变的

假定服务器的时间是准确的
则有

$t = 1394116011; //time() 的结果for($i=-12; $i<=12; $i++) {  date_default_timezone_set(sprintf("Etc/GMT%s%d", $i<0?'':'+', $i));  echo date_default_timezone_get(), date(' Y-m-d H:i:s', $t), PHP_EOL;}
Etc/GMT-12 2014-03-07 02:26:51Etc/GMT-11 2014-03-07 01:26:51Etc/GMT-10 2014-03-07 00:26:51Etc/GMT-9 2014-03-06 23:26:51Etc/GMT-8 2014-03-06 22:26:51Etc/GMT-7 2014-03-06 21:26:51Etc/GMT-6 2014-03-06 20:26:51Etc/GMT-5 2014-03-06 19:26:51Etc/GMT-4 2014-03-06 18:26:51Etc/GMT-3 2014-03-06 17:26:51Etc/GMT-2 2014-03-06 16:26:51Etc/GMT-1 2014-03-06 15:26:51Etc/GMT+0 2014-03-06 14:26:51Etc/GMT+1 2014-03-06 13:26:51Etc/GMT+2 2014-03-06 12:26:51Etc/GMT+3 2014-03-06 11:26:51Etc/GMT+4 2014-03-06 10:26:51Etc/GMT+5 2014-03-06 09:26:51Etc/GMT+6 2014-03-06 08:26:51Etc/GMT+7 2014-03-06 07:26:51Etc/GMT+8 2014-03-06 06:26:51Etc/GMT+9 2014-03-06 05:26:51Etc/GMT+10 2014-03-06 04:26:51Etc/GMT+11 2014-03-06 03:26:51Etc/GMT+12 2014-03-06 02:26:51
可以看到,除非你把时区设在太平洋上,2014-03-06 这个日期都不会变
于是可以推论,你的服务器上的时间不准确
这一点你可以在按服务器默认时区输出一个日期时间后,手工推演一下

后来问了供应商,他们说应该是服务器上的时间有问题。后来就自动好了,估计是他们自己调正确了。

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn