Home >Backend Development >PHP Tutorial >取不到当前正确日期有关问题

取不到当前正确日期有关问题

WBOY
WBOYOriginal
2016-06-13 11:53:361000browse

取不到当前正确日期问题
页面代码:服务器在美国
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


总是少一天。以前没有这种情况的,要怎么搞啊。
------解决方案--------------------
声明一下:没有国外的服务器,无法实地测试
但原理是不变的

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

$t = 1394116011; //time() 的结果<br />for($i=-12; $i<=12; $i++) {<br />  date_default_timezone_set(sprintf("Etc/GMT%s%d", $i<0?'':'+', $i));<br />  echo date_default_timezone_get(), date(' Y-m-d H:i:s', $t), PHP_EOL;<br />}<br />
Etc/GMT-12 2014-03-07 02:26:51<br />Etc/GMT-11 2014-03-07 01:26:51<br />Etc/GMT-10 2014-03-07 00:26:51<br />Etc/GMT-9 2014-03-06 23:26:51<br />Etc/GMT-8 2014-03-06 22:26:51<br />Etc/GMT-7 2014-03-06 21:26:51<br />Etc/GMT-6 2014-03-06 20:26:51<br />Etc/GMT-5 2014-03-06 19:26:51<br />Etc/GMT-4 2014-03-06 18:26:51<br />Etc/GMT-3 2014-03-06 17:26:51<br />Etc/GMT-2 2014-03-06 16:26:51<br />Etc/GMT-1 2014-03-06 15:26:51<br />Etc/GMT+0 2014-03-06 14:26:51<br />Etc/GMT+1 2014-03-06 13:26:51<br />Etc/GMT+2 2014-03-06 12:26:51<br />Etc/GMT+3 2014-03-06 11:26:51<br />Etc/GMT+4 2014-03-06 10:26:51<br />Etc/GMT+5 2014-03-06 09:26:51<br />Etc/GMT+6 2014-03-06 08:26:51<br />Etc/GMT+7 2014-03-06 07:26:51<br />Etc/GMT+8 2014-03-06 06:26:51<br />Etc/GMT+9 2014-03-06 05:26:51<br />Etc/GMT+10 2014-03-06 04:26:51<br />Etc/GMT+11 2014-03-06 03:26:51<br />Etc/GMT+12 2014-03-06 02:26:51<br />
可以看到,除非你把时区设在太平洋上,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