Unix 纪元时间使用 PHP 错误地转换为人类可读

Posted

技术标签:

【中文标题】Unix 纪元时间使用 PHP 错误地转换为人类可读【英文标题】:Unix epoch time converts to human readable incorrectly with PHP 【发布时间】:2021-10-30 10:25:56 【问题描述】:

1630440104 是 Unix 纪元时间代码示例。

这个 php 代码

echo date('Y.m.d', '1630440104').' at '.date('H:m:s', '1630440104');

输出为2021.08.31 at 23:08:44,这是不正确的。

因为正确的输出应该是2021.08.31 at 23:01:44

无论我在上述 PHP 代码中插入什么时间代码,它都会返回 08 分钟而不是实际值。

我哪里做错了?

【问题讨论】:

顺便说一句,如果您对它进行转义,您可以在格式字符串中包含“at”,因此您只需调用一次date()echo date('Y.m.d \a\t H:i:s', '1630440104'); @Sammitch 只是因为它应该在这种特殊情况下。将任何在线纪元转换器与我的时间码一起使用。时间戳可以是更少或更多的任何分钟。仅当实际分钟数为 8 时才正确。因为正如我在问题中所述,它始终显示 8 分钟。 @dontpanic 谢谢 【参考方案1】:

错误是在第二个date 调用中使用了mm 是月份,分钟是 i

echo date('Y.m.d', 1630440104).' at '.date('H:i:s', 1630440104);

echo date('Y.m.d \a\t H:i:s', 1630440104);

顺便说一句,date 第二个参数接受 int 而不是 stringdeclare(strict_types=1); 中会发生 TypeError。

您可以在DateTime::format docs page 下找到可用的格式。

【讨论】:

我应该自己检测到我的错误,因为日期部分已经有m。非常感谢! 不,有问题。它发生了。

以上是关于Unix 纪元时间使用 PHP 错误地转换为人类可读的主要内容,如果未能解决你的问题,请参考以下文章

在 Mac OSX 上将 unix 纪元时间转换为人类可读的日期 - BSD

如何使用 sed 将纪元转换为人类可读的日期时间

如何在 Teradata 中将纪元时间转换为人类可读

如何将纳秒的纪元时间转换为人类可读的?

将纪元转换为人类可读的日期在 python 中不起作用

在mysql中将纪元数转换为人类可读的日期