PHP比较两个日期

时间:2013-11-15 19:00:58

标签: javascript php html date

我有YYYY-MM-DD格式的两个日期,我想比较它们做一些任务。

我尝试了这段代码:

         $temp_date = strtotime($cu['date']);
         $temp_upto = strtotime($upto_date);

         if($temp_date <= $temp_upto){
            echo "<tr id='highlight'>"; 
        }else{
            echo "<tr>";
            }

$cu是一个数组,包含相同格式的日期。这是比较PHP日期的正确方法吗? 我得到的输出很奇怪!我没有发布完整的代码,因为它太长,与此问题无关。 谢谢!

更新:所以这就是我想要做的。我有很多正常日期,如果正常日期小于或等于最新日期我有一个最新日期,那么我想要添加id =“highlight”。为了我的代码的其他目的,整个事情都在循环中。

我回应了这样的日期:

 echo "DATE: " . $temp_date + " UPTO: " . $upto_date;

并且输出类似于

DATE: 1349042400 UPTO: 00-00-0000
DATE: 1349388000 UPTO: 00-00-0000
DATE: 1352588400 UPTO: 00-00-0000
DATE: 1352761200 UPTO: 00-00-0000
DATE: 1353193200 UPTO: 00-00-0000
DATE: 1353366000 UPTO: 1353193200
DATE: 1354143600 UPTO: 1353193200
DATE: 1354662000 UPTO: 1353193200

仍然没有发生比较。我没有看到任何变化!

建议的人已经回答了问题,我已经阅读并实施了大部分问题而没有取得任何成功。

更新2:虽然我仍在努力解决我的问题。我想在此处分享展开的代码段http://pastebin.com/nsVGV9dg

2 个答案:

答案 0 :(得分:4)

不,这不对。您正在比较两个日期字符串。您想要比较时间戳:

$temp_dateTS = strtotime($cu['date']);
$temp_uptoTS = strtotime($upto_date);

if ($temp_dateTS <= $temp_uptoTS) {
    # code...
}

如果您使用DateTime class:

,这也是可能的(并且更好)
$temp_date = new DateTime($cu['date']);
$temp_upto = new DateTime($upto_date);

if ($temp_date <= $temp_upto) {
    # code...
}

答案 1 :(得分:3)

我不是直接回答你的问题,但我认为最好使用php DateTime对象。

$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);