如果时间不是00:00:00
,我该如何显示时间?然而,这是有效的,我怀疑是否有一种不那么神秘的方式。请注意,提供的日期时间将是标准的MySQL日期时间数据类型,并且要显示的所需日期时间会有所不同。感谢
<?php
function formatDate($d)
{
$f='Y-m-d'.((strlen($d)==19 && substr($d, -8)!='00:00:00')?' H:i:s':null);
$date = new DateTime($d);
return $date->format($f);
}
echo(formatDate("2014-11-02 02:04:05").'<br>');
echo(formatDate("2014-11-02 00:00:00").'<br>');
?>
答案 0 :(得分:2)
您的方法似乎很好,但您也可以这样做:
$f = 'Y-m-d' . (date('H:i:s', strtotime($d)) != '00:00:00' ? ' H:i:s' : '');
更新
@zerkms在他的comment中提出了一个很好的观点。为什么要重新格式化为相同的格式?除非您要使用与Y-m-d
不同的格式,否则最好不要使用函数,只使用str_replace()
。或者你可以简化你的功能:
function formatDate($d)
{
return str_replace(' 00:00:00', '', $d);
}