>백엔드 개발 >PHP 튜토리얼 >取不到当前正确日期有关问题

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

WBOY
WBOY원래의
2016-06-13 11:53:36995검색

取不到当前正确日期问题
页面代码:服务器在美国
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 这个日期都不会变
于是可以推论,你的服务器上的时间不准确
这一点你可以在按服务器默认时区输出一个日期时间后,手工推演一下

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.