2010-11-06 56 views
0

我剛剛在PHP中編寫了一個函數,它將日期更改爲更易讀的格式。PHP日期編譯器

function customDate($input_date){ 
$datetime = explode(' ', $input_date); 
$date = explode('-', $date); 
$time = explode(':', $time); 
$current = date('Y-m-d H:i:s'); 
$currentdatetime = explode(' ', $current); 
$currentdate = explode('-', $current_date); 

if($date[2] == $currentdate[2]) return date('H:i', strtotime($input_date)); 
else if($date[2] != $currentdate[2] && $date[0] == $currentdate[0]) return date('F d H:i', strtotime($input_date)); 
else if($date[2] = $currentdate[2] && $date[0] != $currentdate[0]) return date('F d Y H:i', strtotime($input_date)); 
else return $input_date; 
} 

這改變日期像2010-11-06 18:25:55看起來更漂亮像18:25(如果今天是2010-11-06),11 November 18:25(如果不是今天,但仍然在2010年年)或11 November 2010 18:25如果2010年已經過去了。但從理論上講,我無法找出爲什麼功能只能在不同的日期輸出小時和分鐘。什麼可能導致問題?

+0

嗯,我不知道你的意思是,只有時間和不同天分鐘...但你可以檢查這個鏈接,看看它是否對您有用:HTTP://計算器。/4003476 /人類可讀的日期使用PHP/4003499#4003499 – 2010-11-06 15:42:38

回答

0

我覺得函數輸出相同的格式,因爲它更精確,但也沒有編寫代碼使其更具人類可讀性。

但它是一把雙刃劍。 Mac喜歡使用「在幾分鐘內完成」。 Windows喜歡使用「在2分20秒內完成」。

有些人可能會發現短語「完成在幾分鐘」或「秒」足夠好,但同時,如果我需要趕上公共汽車,我不知道是2分鐘還是7分鐘,那麼這可能是一個問題。同時,我可能不需要知道「2分20秒」和「2分15秒」。

與您的問題非常相似......有時需要顯示細節,有時不需要。例如,要顯示您購買的演唱會門票的時間,可能需要一個月,甚至一年。

+0

好想法,但他們是offtopic。我只需要知道函數有什麼問題,因爲它返回的值不是它應該的值。 – 2010-11-06 15:53:45

1

PHP已經支持使用date()函數幾乎所有你想要的格式。如果需要的話,將它與strtotime()結合起來以得到你想要的。它非常強大。 例如:

if (date('Y',strtotime($input_date)) < date('Y',time())) { 
    echo date('d F Y H:i'); 
} else { 
    echo date('d F H:i'); 
} 
// Oter examples 
echo date('Y-m-d', strtotime('last tuesday')); 
echo date('Y-m-d', strtotime('3 days ago')); 
echo date('Y-m-d', strtotime('+4 weeks')); 
echo date('Y-m-d H:iA', strtotime('+2 hours 23 minutes')); 
echo date('Y-m-d H:iA', strtotime('+2 hours -23 minutes'));