2011-08-10 134 views

回答

5

使用strtotime()可以輕鬆完成,並且可以更改爲您可能需要的任何其他日期格式。

$old_date = "2011-08-10 20:40:12"; 
$new_date = date("Y-m-d", strtotime($old_date)); 
echo $new_date; 

// Prints 2011-08-10 
1
$date = date("Y-m-d", strtotime($date)); 

僅僅只使用日期格式的日期和您的字符串轉換爲一個時間戳。

3

好了,一個簡單的方法來做到這將是以下(如果你已經得到了一個字符串日期):

$output = substr($date, 0, 10); 

這將意味着你搶前10個字符的「2011 -08-10 20:40:12「,給你留下」2011-08-10「!

14

快速/骯髒:

$output = substr('2011-08-10 20:40:12', 0, 10); 

稍微更穩健:

$output = date('Y-m-d', strtotime('2011-08-10 20:40:12')); 

相當可靠:

$output = DateTime::createFromFormat('Y-m-d h:i:s', '2011-08-10-20:40:12')->format('Y-m-d'); 
+0

在PHP 5.5.4的第三種情況下:致命錯誤:找不到類'Date',但是DateTime :: createFromFormat()起作用。 –

+0

啊是的。接得好。謝謝。修復了答案。 –

2

另一種解決方案,認爲不如是簡單地做一個字符串:

$newDate = substr($date, 0, 10) 
+0

該死的你們很快!這個已經發布了 – demius

+0

很高興看到我不是唯一一個認爲這個「簡單」的人! :-) – ninetwozero

1

我喜歡strftime最新,因爲它的格式輸入相匹配那些C等語言。

$output = strftime('%Y-%m-%d', strtotime($date)); 
-1

嘗試:

$date = explode(" ",$date); 
$output = $date[0]; 

如果它們之間用空格分隔,可以使用爆炸將它們分開。

+0

它給出錯誤不能轉換數組中的字符串偏移量。 –

0

一個調整的方法使用爆炸,從而可以把它變成一個襯裏:

列表($日期)=爆炸(」」,$日期);

列表函數對於日期非常方便。

使用列表又如:

列表($年,$月份,$日)=爆炸(」」,$日期);

此外,你最好使用「,而不是 」字符串,除非你的字符串包含變量。

  • '亞達'
  • '兵'
  • 「 你好{ $ bob}「

我厭倦了看到甚至PHP文檔使用」字符串「的例子中,他們應該使用'字符串':o)

0
$old_date = "2011-08-10 20:40:12"; 
$new_date = date("Y-m-d", strtotime($old_date)); 
echo $new_date; 

// Prints 2011-08-10 

這應該是非常有用的。

相關問題