我在会话中存储了一个时间戳(1299446702)。
如何在PHP中将其转换为可读的日期/时间?我试了一次又一次,都没有结果。
我在会话中存储了一个时间戳(1299446702)。
如何在PHP中将其转换为可读的日期/时间?我试了一次又一次,都没有结果。
当前回答
如果有人想直接将时间戳转换为DateTime对象,有一个简单的一行程序:
$timestamp = 1299446702;
$date = DateTime::createFromFormat('U', $timestamp);
在@sromero注释之后,timezone参数(DateTime::createFromFormat()中的第3个参数)在传递unix时间戳时被忽略,因此下面的代码是不必要的。
$date = DateTime::createFromFormat('U', $timestamp, new DateTimeZone('UTC'); // not needed, 3rd parameter is ignored
您可以查看PHP手册中的DateTime::createFromFormat以获得更多信息和选项。
其他回答
Strtotime将日期字符串转换为时间戳。你要做的正好相反,那就是约会。典型的mysql日期格式是date('Y-m-d H:i:s');查看手册页上的其他字母代表什么。
如果你有一个想要使用的时间戳(显然你有),它是date()的第二个参数。
除非你需要自定义日期和时间格式,否则使用内置的日期和时间格式常量会更容易,更不容易出错,也更易于阅读:
echo date(DATE_RFC822, 1368496604);
试试这个:
echo date('m/d/Y H:i:s', 1541843467);
试一试。
<?php
$timestamp=1333342365;
echo gmdate("Y-m-d\TH:i:s\Z", $timestamp);
?>
如果有人想直接将时间戳转换为DateTime对象,有一个简单的一行程序:
$timestamp = 1299446702;
$date = DateTime::createFromFormat('U', $timestamp);
在@sromero注释之后,timezone参数(DateTime::createFromFormat()中的第3个参数)在传递unix时间戳时被忽略,因此下面的代码是不必要的。
$date = DateTime::createFromFormat('U', $timestamp, new DateTimeZone('UTC'); // not needed, 3rd parameter is ignored
您可以查看PHP手册中的DateTime::createFromFormat以获得更多信息和选项。