【发布时间】:2020-08-15 11:12:50
【问题描述】:
我正在尝试检索不在 GMT 中的日期并将其转换为 GMT。为此,我创建了两个时区(一个 GMT 和一个非 GMT)并尝试获取它们之间的偏移量。但是,偏移仅在一个方向上是正确的。对于这个特定示例,我试图将 GMT +4 与 GMT 进行比较。当我将 GMT 时区与 GMT+4 时区进行比较时,我希望得到 4 小时(14400 秒),当我将 GMT+4 时区与 GMT 进行比较时,我希望得到 -4 小时(-14400 秒)。但是,当比较后者时,我得到 0... 这就是我所拥有的
$default_timezone = new DateTimeZone(drupal_get_user_timezone());
$default_reg_date = new DateTime($reg_date_string, $default_timezone);
$gmt_timezone = new DateTimeZone('UTC');
$gmt_reg_date = new DateTime($reg_date_string, $gmt_timezone);
// Returns as 14400
$default_gmt_offset = $default_timezone->getOffset($gmt_reg_date);
// Returns as 0
$gmt_default_offset = $gmt_timezone->getOffset($default_reg_date);
为什么我不能得到正确的号码,我做错了什么?检索偏移量只有一种方式吗?
注意:在此特定示例中,drupal_get_user_timezone() 正在返回 GMT+4
【问题讨论】: