格式化日期和时间,以便在单独的var中获取日期,月份,年份

时间:2014-03-13 17:10:29

标签: php date datetime

在twitter API的json响应中,我得到了这样的时间戳

Thu Mar 13 14:24:13 +0000 2014

我试着用这种方式格式化:

$created_at = $thing->created_at;
$date = DateTime::createFromFormat('D M d H:m:s O Y', $created_at); 
echo $created_at;
echo $date->format('H:m:s'); 

结果如下:

Thu Mar 13 14:24:13 +0000 2014
2015:12:13 //formated result. How come 2015?????
Wed Mar 12 14:18:14 +0000 2014
2015:06:12
Tue Jan 21 12:50:17 +0000 2014
2018:02:21
Thu Dec 12 09:29:16 +0000 2013
2015:05:12

为什么给出错误的结果?

我想让月份,年份分开变量。

2 个答案:

答案 0 :(得分:1)

您可以通过以下方式简化DateTime的创建:

$dt = new DateTime('@' . strtotime('Thu Mar 13 14:24:13 +0000 2014'));

将日期字符串解析为Unix时间戳,然后创建DateTime对象。

echo $dt->format('Y-m-d H:i:s');  // yields the correct result.

答案 1 :(得分:0)

您使用月份格式字符m而不是分钟i,这就是您输出“错误”的原因。

$dt = new DateTime('Thu Mar 13 14:24:13 +0000 2014');
echo $dt->format('H:i:s');