日期比较PHP的MySQL
我有一个系统,是比较MySQL的提交讨论今天的日期日期看某个文件是否需要更新:日期比较PHP的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_renewal:2012年12月2日
ID:2 - > iep_renewal:2012年12月8日
但是该表输出,这两个值是 “最新的” 当第一是明确不是。
有没有办法做到这一点,如果是这样的话!
$今天= 19-02-2012(今天的日期)和$ redate_converted_date = 2012年12月2日(日期从DB)
您不能在格式比较日期:他们”我会比较为字符串,而不是日期,导致不正确的结果。
使用strtotime()
或将它们转换成时间戳(或DateTime
对象),你可以比较。
$some_date_timestamp = strtotime('18-02-2011');
$current_timestamp = time();
echo ($some_date_timestamp < $current_timestamp) ? 'Old date' : 'Future date';
你和Pekka的答案都有帮助,但我只能把一个作为我接受的答案!谢谢 – 2012-02-19 21:45:38
没有问题!很高兴我能帮上忙 – Crinsane 2012-02-19 21:50:23
作为另一种可能性,你可以通过这样的函数进行包装,作为UNIX时间戳出口直出的DB:
SELECT *, UNIX_TIMESTAMP(`iep_renewal`) AS iep_renewal_unix
有可能是在包装列相关的性能问题在大型数据集上运行。
'$ today'和'$ redate_coverted_date'的值是什么? – 2012-02-19 21:25:57
我想到的第一件事是,我总是认为使用时间戳比较日期/时间会更好。所以只需将日期转换为时间戳。获取当前的时间戳,然后这只是一个简单的数学问题 – Crinsane 2012-02-19 21:27:15
@Pekka $ today = 19-02-2012(今天的日期)和$ redate_converted_date = 12-02-2012(DB的日期) – 2012-02-19 21:30:31