【问题标题】:PHP compare two datesPHP比较两个日期
【发布时间】:2013-11-29 06:56:11
【问题描述】:

我有两个格式为 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: 虽然我仍在尝试找出我的问题。我想在这里分享扩展代码sn-p http://pastebin.com/nsVGV9dg

【问题讨论】:

  • 如果您直接比较 strtotime 值,它会起作用。这些是简单的整数,&gt;/&lt;/= 类型比较按预期工作。您正在以最低有效值优先顺序转换为字符串,因此您的比较是垃圾。
  • PHP - Compare Date 的可能副本以及所有这些stackoverflow.com/…

标签: javascript php html date


【解决方案1】:

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

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

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

如果您使用DateTime 类,这也是可能的(并且更好):

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

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

【讨论】:

  • 请检查我的问题中的更新。我在使用 DateTime 时收到此错误... DateTime 类的对象无法转换为 int
  • @user2933671:这不是您在 PHP 中连接字符串的方式。使用. 而不是+。阅读documentation
  • @MikeB 是的,你是对的!这样一个问题有很多答案,我从一个小时开始就尝试在我的代码中实现它们!我只是想找出为什么即使方法正确,我的比较也不起作用!
  • @AmalMurali 我已经在 OP 中更新了我的回声呼叫。我将尝试在几分钟内分享更多我的代码,因为我将不得不清理一些不必要的垃圾
【解决方案2】:

我没有直接回答你的问题,但我认为用户 php DateTime 对象更好。

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

【讨论】:

  • 他没有在任何地方计算时差。
  • 他可以计算差异并进行比较。没发现问题。
猜你喜欢
  • 2014-07-16
  • 1970-01-01
  • 1970-01-01
  • 2011-09-28
  • 2011-04-20
  • 2015-06-25
  • 1970-01-01
  • 2011-09-01
相关资源
最近更新 更多