我有一个系统,它将mysql tabled日期与今天的日期进行比较,以查看某个文档是否需要续订:
<?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 - &gt; iep_renewal:12-02-2012
id:2 - &gt; iep_renewal:12-08-2012
然而,当第一个显然不是时,表格输出这两个值都是“最新的”。
有没有办法做到这一点,如果是这样的话!
答案 0 :(得分:3)
$some_date_timestamp = strtotime('18-02-2011');
$current_timestamp = time();
echo ($some_date_timestamp < $current_timestamp) ? 'Old date' : 'Future date';
答案 1 :(得分:2)
$ today = 19-02-2012(今天的日期)和$ redate_converted_date = 12-02-2012(来自DB的日期)
您无法比较该格式的日期:它们将被比较为字符串,而不是日期,从而导致错误的结果。
使用strtotime()
或DateTime
将其转换为您可比较的时间戳(或DateTime
个对象)。
答案 2 :(得分:1)
作为另一种可能性,您可以通过将其包装在以下函数中直接从数据库导出为unix时间戳:
SELECT *, UNIX_TIMESTAMP(`iep_renewal`) AS iep_renewal_unix
在大型数据集的函数中包装列可能会出现性能问题。