2009-06-17 266 views
1

我需要製作一個時間戳放入MySQL。用戶提交了一個數字(幾個星期),我需要將這幾個星期添加到今天的日期。我試圖做的是計算用戶提交的廣告的結束日期。計算日期

有關如何做到這一點的任何建議?謝謝!

回答

3

您可以使用strtotime爲日期添加時間 - 如果不傳遞任何參數,則需要第二個參數爲當前時間。然後,您可以創建時間傳遞給date函數來創建你的時間戳:

$timestamp = date('Y-m-d H:i:s', strtotime('+10 weeks')); 
2

我覺得DATE_ADD(CURDATE(),間隔2周)將增加2個weekss爲當前日期,例如

0

如果您希望廣告在某一天的某個時間到期,您可以使用mktime:

$ day = date(「d」)+($ weeks * 7);
mktime($ hour,$ minute,$ second,$ month,$ day,$ year);

0

爲了增加,有些人會說,將UNIX時間存儲爲數據庫中普通的int字段是更靈活和便攜的解決方案。此外,插入和更新發生得更快,因爲它們只涉及存儲簡單整數。這實際上取決於您需要在數據庫級別處理多少日期操作。我傾向於使用可移植性,並使用PHP進行所有日期計算。要存儲當前時間戳,我只插入一個整數列的輸出:

strtotime('now'); 

time(); 

其中兩個返回當前(UNIX)時間戳。

if($tsFromDb > strtotime('+28 days')) { 
    echo 'it is the future, zombies!'; 
} 

這真的取決於你使用的日期是什麼:日期比較之後,可以通過從數據庫中獲取的時間戳和進行簡單的算術運算,如微不足道來完成。