2014-09-10 4 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

+4

데이터베이스 수준에서 검사하지 않는 이유는 무엇입니까? 'SELECT * DATE_ADD (NOW(), INTERVAL 1 YEAR) ' –

+0

해당 쿼리가 작동하려면 어떤 열 유형이 필요합니까? 2012 년에 내 날짜를 설정했지만 내 응용 프로그램이 데이터베이스에서 가져 오지 않는 것 같습니다. 내 날짜는 현재 '타임 스탬프'이며 '2012-09-10 16 : 13 : 44'과 같습니다. – Nicolas

답변

2

strtotime을 사용하면 PHP manual은 "영어 텍스트 datetime 설명을 유닉스 타임 스탬프로 구문 분석"할 수 있습니다.

그래서, 당신의 코드는 다음과 같을 수 있습니다 무엇을 작동하지

... 
if ($comparableDate = strtotime('-1 year')) { 
    ... 
관련 문제