2011-04-30 41 views
2

這裏處理是我需要做的:與日期

  1. 我想從當前日期
  2. 30天插入日期到日期時間的MySQL場當我拉的是特定的記錄,我想能夠檢查該日期是否已過尚未與否(即到期日)

回答

1

對於您的插入:

$thirty_days_from_today = date('Y-m-d H:i:s', time() + 60*60*24*30); 

個檢查有效期:

if(strtotime($row['expiration_date']) < time()) { 
    // expired 
} 
+0

這看起來像我需要的一切:d我可能會與一些其他技巧結合起來,特別是使用MySQL來插入它的間隔。謝謝:D – robhardgood 2011-04-30 03:11:29

0

的strtotime是您在這一個朋友,都確保您通過數據發送的輸入是「可以理解的」用PHP,也爲做數學,如「+10天數」這將從今天起十天返回日期。你可以在strtotime中扔出真是太神奇了。

檢查日期與操作者的MySQL查詢或PHP比較簡單 - 像>,< <>等

4
INSERT INTO the_table 
    (fields, the_date_field) 
VALUES 
    (?, DATE_ADD(NOW(), INTERVAL 30 DAY)) 

SELECT 
    the_date_field < NOW() AS expired 
FROM 
    the_table 

確認:

SELECT '2010-01-01' < NOW() AS expired; 
+---------+ 
| expired | 
+---------+ 
|  1 | 
+---------+ 

SELECT '2012-01-01' < NOW() AS expired; 
+---------+ 
| expired | 
+---------+ 
|  0 | 
+---------+ 
+0

+1:所有OP的要求都可以在SQL中處理 – 2011-04-30 03:05:11

+0

the_date_field robhardgood 2011-04-30 03:10:27

+0

當你提取數據時,'過期'將是關鍵。例如,使用'$ row = mysql_fetch_assoc()','$ row'將會是'array('expired'=> true);' – 2011-04-30 03:14:00

0

由於您使用的是PHP,因此您可以利用strtotime()

$date = date('Y-m-d', strtotime('+30 days')); 

strtotime可以處理其它的增量(+1 days+5 minutes等)

您還可以使用strtotime比較的日期,當你讀出來的​​數據庫。如果您以全天(無時間戳)格式進行存儲,則需要劃分一整天的時間。

$expdate = strtotime(date('Y-m-d', $record[ 'expiration_date' ])); 
$today = strtotime(date('Y-m-d')); 
$isExpired = round(abs($expiration - $today)/(24 * 60 * 60)) >= 0;