将时间戳转换为可读的日期/时间PHP


227

我在会话中存储了一个时间戳(1299446702)。

如何在PHP中将其转换为可读的日期/时间?我已经尝试过srttotime等,但无济于事。

Answers:



84

strtotime将日期字符串设置为时间戳。您想做相反的事情,即date。典型的mysql日期格式是date('Y-m-d H:i:s'); 检查手册页上其他字母代表什么。

如果您有要使用的时间戳(很明显是这样),则它是的第二个参数date()


4
值得一提的是,我通过的当前日期如下:echo date('m/d/Y', strtotime($current_date_variable);
cwiggo 2015年

没有将时间戳转换为其日期时间标准化的命令,因为我已将日期时间转换为unix时间戳,但是在我的数据库中它仍然是日期时间,我会尝试使用此方法,但我仍然觉得很奇怪,没有针对它的特定命令
Marc Roelse

64

我刚刚在火箭的答案中添加了H:i:s,以获取时间和日期。

echo date('m/d/Y H:i:s', 1299446702);

输出:2011年3月6日16:25:02



23

如果使用PHP date(),则可以使用此代码获取日期,时间,秒数等。

$time = time();               // you have 1299446702 in time
$year = $time/31556926 % 12;  // to get year
$week = $time / 604800 % 52;  // to get weeks
$hour = $time / 3600 % 24;    // to get hours
$minute = $time / 60 % 60;    // to get minutes
$second = $time % 60;         // to get seconds

12
leap年和second年怎么样...?
Petteri Hietavirta 2015年

$year = date('Y', $time)
鲁宾·卡祖莫夫

16

我知道这是一个古老的问题,但是在搜索结果中却很高。

如果有人想将时间戳直接转换为DateTime对象,那么有一个简单的方法:

$timestamp = 1299446702;
$date = DateTime::createFromFormat('U', $timestamp);

在@sromero注释之后,传递unix时间戳时将忽略时区参数(DateTime :: createFromFormat()中的第三个参数),因此不需要以下代码。

$date = DateTime::createFromFormat('U', $timestamp, new DateTimeZone('UTC'); // not needed, 3rd parameter is ignored

您可以查看PHP的DateTime :: createFromFormat手册以获得更多信息和选项。


1
对最后一行代码进行评论:根据链接的手册页,“注意:当time参数包含UNIX时间戳(例如946684800)或指定时区(例如2010)时,timezone参数和当前时区将被忽略。 -01-28T15:00:00 + 02:00)。”
sromero '18

@sromero你有权利。在这种情况下,时区参数将被忽略。
Pascal




6

试试这个:

echo date('m/d/Y H:i:s', 1541843467);

1
嗨,您好!似乎已经提出了这个答案。请参阅最佳答案。
帽子

4

echo date("l M j, Y",$res1['timep']);
这对于将unix时间戳与日期一起转换为可读日期非常有用。示例:2016年7月7日,星期四


1
已经发布了类似的答案,您的答案中信息的附加内容是什么?
Steffen Harbich '16

4
echo 'Le '.date('d/m/Y', 1234567890).' à '.date('H:i:s', 1234567890);

4
$epoch = 1483228800;
$dt = new DateTime("@$epoch");  // convert UNIX timestamp to PHP DateTime
echo $dt->format('Y-m-d H:i:s'); // output = 2017-01-01 00:00:00

在上面的示例中,“ r”和“ Ymd H:i:s”是PHP日期格式,其他示例:

格式输出

r              -----    Wed, 15 Mar 2017 12:00:00 +0100 (RFC 2822 date)
c              -----    2017-03-15T12:00:00+01:00 (ISO 8601 date)
M/d/Y          -----    Mar/15/2017
d-m-Y          -----    15-03-2017
Y-m-d H:i:s    -----    2017-03-15 12:00:00
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.