PHP 从纪元时间转换中给出了意想不到的结果

Posted

技术标签:

【中文标题】PHP 从纪元时间转换中给出了意想不到的结果【英文标题】:PHP is giving unexpected results from epoch time conversion 【发布时间】:2017-10-24 03:16:25 【问题描述】:

我需要将纪元时间转换为标准小时和分钟。使用 *** 上的各种示例,我一直无法获得正确的回报。我正在使用以下

$seconds= 1495587600;   
$mytime= date("H:i", $seconds);
echo $mytime."<br>";

我在时间转换器网站上检查了 $seconds 的值并得到了正确的结果。我希望代码的返回是 09:00,而不是 01:00。有什么我遗漏的吗?

【问题讨论】:

在我这边工作得很好,我得到了 21:00 【参考方案1】:

这看起来像是时区问题。 php date() 使用可以使用date_default_timezone_set() 设置的本地时区。您的托管公司或其他一些服务器配置可能设置的默认时区与您预期的不同。

【讨论】:

出了点问题,我回显了时区,它是正确的,标准时间和纪元时间也是如此。但是当我为秒的值运行代码时,它是不正确的。也许我的代码是错误的。尝试在标准时间将 epoch 转换为 h:i。 @snowman 1:00 如果您设置为 UTC,您应该得到什么。你如何呼应时区? date_default_timezone_get() 还是别的什么? 回显 date_default_timezone_get().""; 美国/纽约 @snowman 使用 'America/New_York' 你应该得到 21:00 作为结果。在上面列出的其他时间中,1:00 是您应该得到的 UTC,而 09:00 将是世界另一端的某个地方。但是 21:00 = 9:00 PM,因此如果您想获得 9:00 PM,则在 12 小时内使用“h”而不是“H”,您可以使用“a”或“A”添加 AM/PM '。

以上是关于PHP 从纪元时间转换中给出了意想不到的结果的主要内容,如果未能解决你的问题,请参考以下文章

如何在 python 中将 1970 年前的日期转换为纪元? [复制]

从纪元到日期时间的转换不正确

在php中将纪元时间斜坡转换为格式化的日期字符串[重复]

检查数据框中的列是不是处于纪元时间会给出不同的结果

从日期转换为纪元-Oracle

使用 PHP 将 mm/dd/yyyy 格式转换为纪元