无法在php中将日期('Yzhis')转换为Y-m-d

时间:2015-08-17 20:11:13

标签: php date strtotime date-conversion

我正在尝试转换以下日期:

$myDate=

201373055607

201373055616

201594035728

201373102215

2013160023556

等...

他们通过该功能创建:

date('Yzhis')

我想把它们转换成那种格式:'Y-m-d' 所以,我使用了那段代码:

$old_date = $myDate;            

$middle = strtotime($old_date);          

$new_date = date('Y-m-d', $middle); 

它返回以下内容:

5607-08-17

5616-08-17

5728-08-17

1970-01-01

2013年6月9日

等...

正如您所看到的,前4个日期是错误的,只有最后一个日期是正确的。

如何绕过转换错误并返回正确的日期??

1 个答案:

答案 0 :(得分:2)

Yzhis a valid date format。结果strtotime()失败并返回false,或者更糟糕的是,认为的值是一个日期,可以转换为日期,但实际上没有任何意义。

如果您要使用非标准格式(您可能不需要这样做),则需要使用DateTime::createFromFormat()才能正确处理。

$old_date = $myDate;            
$middle = DateTime::createFromFormat('Yzhis', $old_date);
$new_date = $middle->format('Y-m-d');

Demo