我正在尝试转换以下日期:
$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个日期是错误的,只有最后一个日期是正确的。
如何绕过转换错误并返回正确的日期??
答案 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');