日期比较PHP Mysql


Date Comparison PHP Mysql

我有一个系统,它将mysql提交的日期与今天的日期进行比较,以查看某个文档是否需要续订:

<?php
        $student_id = $row_student['student_id'];
        $query_ieps = mysql_query("SELECT * FROM `iep` WHERE student_id = ".$student_id."") or die(mysql_error());
        $iep_count = mysql_num_rows($query_ieps);
        $row_iep = mysql_fetch_assoc($query_ieps);
        $today = date("d-m-Y");
        $iep_date = $row_iep['iep_renewal'];
        $convert_iep_date = date("d-m-Y", strtotime($iep_date));
        $redate_coverted_date = $convert_iep_date; 
        if($iep_count == 0){ $iep_status = "No IEP on record"; $iep_td_status = "grey-alert"; }
        elseif($today <= $redate_coverted_date) { $iep_status = "Due for Renewal"; $iep_td_status = "mid-alert"; }
        elseif($today >= $redate_coverted_date) { $iep_status = "Up to Date"; $iep_td_status = "green-alert"; };
?>

我有两组值:

id:1->iep_renewing:12-02-2012

id:2->iep_renewing:12-08-2012

然而,当第一个值显然不是"最新"时,该表输出这两个值都是"最新的"。

有办法做到这一点吗?如果有,怎么做!

$some_date_timestamp = strtotime('18-02-2011');
$current_timestamp = time();
echo ($some_date_timestamp < $current_timestamp) ? 'Old date' : 'Future date';

$today=2012年2月19日(今天的日期)和$redate_converted_date=2012年12月12日(来自DB的日期)

不能以这种格式比较日期:它们将作为字符串而不是日期进行比较,从而导致不正确的结果。

使用strtotime()DateTime将它们转换为可以比较的时间戳(或DateTime对象)。

作为另一种可能性,您可以通过将其封装在这样的函数中,直接从数据库中导出unix时间戳:

SELECT *, UNIX_TIMESTAMP(`iep_renewal`) AS iep_renewal_unix

在大型数据集的函数中包装列可能会出现性能问题。