我有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
答案 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);