2012-09-06 204 views
-1

可能重複:
Format mysql datetime with php計算「X」天

我想在指定日期後的10天來計算,例如,它很容易當它是在使用strtotime的「Ymd」格式中,但在我的情況下,我正在從「Ymd H:i:s」格式的mysql中讀取給定的日期,現在strtotime似乎無法處理這種日期格式。

如何在「Y-m-d H:i:s」格式中給定日期後10天內計算?

謝謝你在前進, Behzad

+1

看看['DateTime'(http://ir2.php.net/manual/en/book.datetime.php) – Leri

+1

這是*不是所引用問題的重複*,只涉及格式化,這與數學有關。這種不準確的調節慢慢地從SO – Kris

回答

4

使用DateTime修改日期加10天數:

$date = DateTime::createFromFormat('Y-m-d H:i:s', $string); 
$date->modify('+10 days'); 
echo $date->format('Y-m-d H:i:s'); 
+0

+1中獲得了所有的樂趣,很好的回答,以及在數據庫中進行數學計算的情況下我會做的事情不可行。 – Kris

3

或者;這樣做在MySQL之前進入PHP替代:

SELECT DATE_ADD(`date_column`, INTERVAL 10 DAY); 
+0

我認爲在PHP中處理它更好。如果您還需要原始日期欄,該怎麼辦?現在您需要傳回附加列。如果你還需要計算5天呢?再一列.. – Kris

+1

這些是什麼,如果沒有被原始問題覆蓋,通常(以我的經驗),當人們問這些事情時,這是因爲他們不知道他們可以在數據庫中做到這一點。在mysql中,它幾乎肯定會更快,尤其是如果你需要爲許多行執行它。但當然,如果情況是這樣的,在php中使用它更有意義,那就去做吧。 – Kris

+0

是的,但有可能你需要原始日期值。我想它更多的是你的答案是「不要用php做」,並且聽起來不錯,因爲在php中這是一件壞事,而不是作爲一種替代解決方案。 – Kris