【发布时间】:2013-08-14 14:47:48
【问题描述】:
Here据说:
时间戳是自格林威治标准时间 1970 年 1 月 1 日午夜以来的秒数。无论您身在何处,给定的时间戳都代表完全相同的时刻,而与时区无关。
所以我尝试了:
$date_str="2010-01-10 12:00";
$TimeZone_toronto=new DateTimeZone('America/Toronto');
$date_obj_toronto=new DateTime($date_str, $TimeZone_toronto);
$date_time_stamp_toronto=$date_obj_toronto->format('U');
$TimeZone_GMT=new DateTimeZone('GMT');
$date_obj_GMT=new DateTime($date_str, $TimeZone_GMT);
$date_time_stamp_GMT=$date_obj_GMT->format('U');
根据上面的报价:应该是 $date_time_stamp_toronto==$date_time_stamp_GMT
但这里是值:
$date_time_stamp_toronto = 1263142800
$date_time_stamp_GMT = 1263124800
所以 => $date_time_stamp_toronto!=$date_time_stamp_GMT 因为:
1263142800!=1263124800
真相在哪里?
【问题讨论】:
-
事实上它运行良好 3v4l.org/Ms108 。另外,不要使用 GMT,而是使用 UTC uk1.php.net/manual/en/timezones.others.php 查看页面中间的红色框。
-
您错过了多伦多的
2010-01-10 12:00和2010-01-10 12:00 GMT确实不指的是同一时间。 -
vascowhite:如果 $date_str="now";.. 我会得到与你在 demi 中显示的时间戳相同的时间戳;但是 $date_str="2010-01-10 12:00";
-
为什么你会认为多伦多的 12:00 = 格林威治标准时间 12:00?显然不是。 3v4l.org/9T7sJ 有帮助吗?
标签: php