如果不是00:00:00,显示php时间

时间:2014-11-02 22:08:50

标签: php

如果时间不是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>');
?>

1 个答案:

答案 0 :(得分:2)

您的方法似乎很好,但您也可以这样做:

$f = 'Y-m-d' . (date('H:i:s', strtotime($d)) != '00:00:00' ? ' H:i:s' : '');

See demo


更新

@zerkms在他的comment中提出了一个很好的观点。为什么要重新格式化为相同的格式?除非您要使用与Y-m-d不同的格式,否则最好不要使用函数,只使用str_replace()。或者你可以简化你的功能:

function formatDate($d)
{
    return str_replace(' 00:00:00', '', $d);
}

See demo 2