2014-09-10 71 views
0

我試圖檢查我的MySQL數據庫中的日期是否比當前日期(腳本運行的那一天)早一年。PHP檢查日期是否爲一年

我不知道如何正確檢查這一點。這是我到目前爲止有:

if ($comparableDate is 1 year older than $todaysDate) { 
     // delete this row from the database 
} 

PHP:

<?php 
// Get Database parameters 
require_once 'settings.php'; 

date_default_timezone_set('America/New_York'); 

// Attempt to connect to Database 
try { 
    $con = new PDO($db_dsn, $db_username, $db_password); 
    $con->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); 
} catch(PDOException $e) { 
    echo 'ERROR: ' . $e->getMessage(); 
} 

$applications = $con->query("SELECT * FROM Applications")->fetchAll(PDO::FETCH_OBJ); 

$todaysDate = getdate(); 
$todaysDate = $todaysDate[0]; 

foreach ($applications as $application) { 
    $date = $application->dateSubmitted; 
    $comparableDate = strtotime($date); 

    if ($comparableDate is 1 year older than $todaysDate) { 
     // delete this row from the database 
    } 
} 
?> 

任何人可以幫助我這個?謝謝。

+0

什麼是不工作?你的日期從數據庫?現在的日期?你比較兩個日期? – Jay 2014-09-10 21:07:00

+4

爲什麼你不在數據庫級別上進行檢查? 'SELECT * FROM WHERE dateSubmitted> DATE_ADD(NOW(),INTERVAL 1 YEAR)' – 2014-09-10 21:07:10

+0

這個查詢的列類型需要做什麼?我將我的日期設置爲2012年,但我的應用程序似乎並未從數據庫中取出。我的日期目前是'timestamp',看起來像'2012-09-10 16:13:44'。 – Nicolas 2014-09-10 21:11:26

回答

2

使用strtotime您可以像PHP manual所說的那樣「將任何英文文本日期時間描述解析爲Unix時間戳」。

所以,你的代碼可能是這樣的:

... 
if ($comparableDate = strtotime('-1 year')) { 
    ... 
相關問題