我有这个命令:
<?php
$now = new DateTime();
echo $now->format("M j, Y H:i:s O")."\n";
?>
现在提供-0400
作为GMT值。
我不记得3月8日之前的价值是什么(夏令时的变化)。还在-0400
吗?或者可能是-0500
?
(我有一个不同的脚本应该与我的服务器时间同步,所以我需要知道这一点,以了解我是否应该更改我的脚本的GMT,手动设置为-0400
)
答案 0 :(得分:1)
正如马克所说,GMT不会改变。仅(可能)您的本地偏移量。
要计算特定日期的GMT偏移量,您可以使用timezone_offset_get,它将以秒为单位返回偏移量。
多米尼加共和国的例子:
$timezone = new DateTimeZone('America/Dominica');
$date = new DateTime('2015-03-07', $timezone);
echo $timezone->getOffset($date);
请注意,GMT-4时区中的大多数国家/地区实际上没有任何夏令时更改,因此您可能会发现偏移量始终完全相同,具体取决于国家/地区。