0

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

我有:

07122012

并且需要得到

2012 年 12 月 7 日

试过:

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

3 回答 3

3

您可以像这样使用DateTime::createFromFormat(适用于 PHP >= 5.3.0):

$date = DateTime::createFromFormat('jmY', '07122012');
echo $date->format('d M Y') . "\n";
于 2012-12-10T18:27:48.567 回答
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 文档(可能有一个内置功能)

于 2012-12-10T18:27:57.640 回答
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']));
于 2012-12-10T19:01:57.777 回答