【发布时间】:2014-11-03 01:37:28
【问题描述】:
php版本: 5.5.9-1ubuntu4.5
php.ini相关配置:
[Date]
; Defines the default timezone used by the date functions
; http://php.net/date.timezone
;date.timezone = UTC
我的 PHP 代码:
<?php
$datetime1 = new DateTime('2009-10-01 00:00:00');
$datetime2 = new DateTime('2009-11-01 00:00:00');
echo $datetime1->format('c') . '<br/>';
echo $datetime2->format('c') . '<br/>';
当我从浏览器访问该代码时,我得到以下结果:
2009-10-01T00:00:00+08:00
2009-11-01T00:00:00+07:00
我的问题:为什么上面的两个日期有不同的时区?
当我将 date.timezone 设置为 UTC 或其他时区时,上面的代码结果将给出正确的时区值。
【问题讨论】:
-
如果您不通过 php.ini 设置时区,您的代码是在哪个时区?可能在您的两个日期之间有 DST 切换的时区。
-
使用
date_default_timezone_get()查看当前时区。
标签: php date datetime timezone