【发布时间】:2020-03-09 11:03:19
【问题描述】:
我正在编写使用时区的 PHP 应用程序。对于陆基 GPS,我使用
date_default_timezone_set();
使用正确的名称,例如 Europe/Dublin。但是,如果 GPS 位置不是陆地而是在海上,则没有时区名称,但时间与 UTC 有偏移。计算是近似的。经度 15 度为 1 小时。我已经手动计算了 UTC 偏移量,但我无法将其设置为 PHP。我正在使用 date 方法从 unix 时间戳打印人类可读的日期。
我发现还有其他时区名称 (https://www.php.net/manual/en/timezones.others.php),例如 Etc/GMT+10,但 PHP 文档指出:
警告请不要使用此处列出的任何时区(UTC 除外),它们 仅出于向后兼容的原因而存在,并且可能会暴露错误 行为。
使用基于Etc 的偏移量是否安全?或者有没有其他安全的解决方案?我还没有找到。在date_default_timezone_set() cmets 有人“使用”这个:https://www.php.net/manual/en/function.date-default-timezone-set.php#96551 但它看起来很丑。
我使用的是 PHP 7.1。
【问题讨论】:
标签: php datetime timezone timezone-offset