格式化日期字符串

时间:2012-12-10 18:17:54

标签: php

我很难将字符串格式化为人类可读的日期格式。

我有:

  

07122012

需要得到

  

2012年12月7日

试过:

date("j M Y", strtotime($str));

3 个答案:

答案 0 :(得分:3)

您可以使用DateTime::createFromFormat(PHP> = 5.3.0),如下所示:

$date = DateTime::createFromFormat('jmY', '07122012');
echo $date->format('d M Y') . "\n";

答案 1 :(得分:2)

尝试:

$str = "07122012";
$stryear = substr($str,-4);
$strmonth = substr($str,2,2);
$strday = substr($str,0,2);

echo date("j M Y", strtotime($stryear.'-'.$strmonth.'-'.$strday));

它会起作用,但最好的是阅读php文档(可能有一个内置功能)

答案 2 :(得分:0)

我认为最优雅的方式,因为你不能直接解析这个字符串,是这样的:

$date = "07122012";

// parse the dte fist correctly
$parsed_date = date_parse_from_format('dmY', $date);


// Make time, print date
echo date("j M Y", mktime(0, 0, 0, $parsed_date['month'], $parsed_date['day'], $parsed_date['year']));