【发布时间】:2020-11-21 03:45:33
【问题描述】:
我的服务器时区是 UTC, 但是当我创建一个 DateTime 对象或当我使用 strtotime 将日期转换为时间戳时,结果是错误的。
我做了一个简单的代码:
$date_init = '2020-07-25 13:00:00';
$dt = new DateTime( $date_init, new DateTimeZone( 'UTC' ) );
$timezone = date_default_timezone_get();
$strtotime = strtotime( $date_init . ' UTC' );
$timestamp = $dt->getTimestamp();
$date_final = $dt->format( 'Y-m-d H:i:s P e' );
当我回显这些值时:
$date_init = 2020-07-25 13:00:00
$timezone = UTC
$strtotime = 1595700000
$timestamp = 1595700000
$date_final = 2020-07-25 13:00:00 -05:00 UTC
即使时间戳是错误的(1595700000 = 2020-07-25 18:00:00 UTC)(online converter)。
预期结果是:
$timestamp = 1595682000
$strtotime = 1595682000
$date_final = 2020-07-25 13:00:00 +00:00 UTC
我不明白发生了什么,有人可以帮忙吗?
PHP 版本:7.3.19
【问题讨论】:
标签: php datetime timestamp timezone offset