我有一个字符串变量名$mydate
,这意味着10 january 2014
$mydate="10-01-2014";
我想将它转换为字符串变量也是'2014-01-10'
半疯狂, 我已经提出了这样的解决方案:
foreach($report_data['summary'] as $key=>$row) {
$substrdate=substr($row['payment_type'],-16); //i have see the result is 10-01-2014
$originalDate = '10-01-2014';
try {
$date = DateTime::createFromFormat('d-m-Y', $originalDate);
//echo $date->format('Y-m-d');
} catch(Exception $e) {
die("Error converting date. Exception caught: " . $e->getMessage());
}
$summary_data_row[] = array('data'=>'<span style="color:'.$color.'">'.$date->format('Y-m-d').'</span>', 'align'=>'right');
$summary_data_row[] = array('data'=>'<span style="color:'.$color.'">'.$row['comment'].'</span>', 'align'=>'right');
}//end of foreach
它运行良好,直到我将$ originalDate替换为具有相同值的$ substrdate - &gt; '10 -01-2014'为什么它不再起作用了?
答案 0 :(得分:1)
使用DateTime
读取日期并将其转换为新格式。
$date = DateTime::createFromFormat('j F Y', '10 january 2014');
echo $date->format('Y-m-d');
答案 1 :(得分:0)
使用PHP的DateTime
对象,您可以使用方法createFromFormat
:
$date = DateTime::createFromFormat('m-d-Y', '10-01-2014');
然后你可以通过以下方式转换它:
echo $date->format('Y-m-d');
当然,您应该将其全部包含在try
catch
块中:
$originalDate = '10-01-2014';
try {
$date = DateTime::createFromFormat('m-d-Y', $originalDate);
echo $date->format('Y-m-d');
} catch(Exception $e) {
die("Error converting date. Exception caught: " . $e->getMessage());
}