2014-11-02 58 views
0

如果不是00:00:00,我該如何顯示時間?然而,這是有效的,我懷疑是否有這樣一個不太神祕的方式。請注意,提供的日期時間將是標準的MySQL日期時間數據類型,並且要顯示的所需日期時間會有所不同。由於如果不是00:00:00,則顯示php時間

<?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

檢查這一項,看看是否有幫助:http://stackoverflow.com/questions/13129817/getting-a-timestamp-for-today - 在午夜 – 2014-11-02 22:14:19

+1

@LuísFerreira。謝謝路易斯,但我認爲它不適用。 – user1032531 2014-11-02 22:15:49

+0

難道你不能只是檢查時間是否是'00:00:00',然後根據它選擇日期格式嗎?我沒有看到真正的問題在這裏。 – 2014-11-02 22:16:25

回答

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

+0

我將使用不同的格式,而不僅僅是默認格式。 – user1032531 2014-11-03 11:59:02

相關問題