我正在编写使用时区的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()
的评论中,有人“使用”此词:https://www.php.net/manual/en/function.date-default-timezone-set.php#96551,但看起来很丑。
我正在使用PHP 7.1。