【问题标题】:PHP IF statement with Date not returning False日期不返回 False 的 PHP IF 语句
【发布时间】:2014-09-04 07:22:56
【问题描述】:

我正在尝试学习一点 php,但无法理解为什么 2 秒 IF 在这里执行。我有一个变量 $theDate 设置为接受 2010 年 5 月 4 日的欧洲日期。

$theDate = date('d-m-Y', strtotime("04-05-2010"));
echo "$theDate<br />";

if($theDate > "02-05-2010")
{
 echo "Greater than!<br />";
}

if($theDate > "02-05-2011")
{
 echo "Why am I showing<br />";
}

echo "Endof";

我现在只想使用 IF,没有 IF-Else 等。但是为什么在 $theDate 不大于 02-05-2011 时执行第二个 IF,

提前致谢,

【问题讨论】:

  • 什么..什么什么..谁告诉你这个比较?
  • 因为 date() 返回一个字符串。您正在比较两个字符串。不是日期。
  • 我在某个地方的 StackExchange 上找到了它。比较日期的正确方法是什么?
  • 我已经为你的问题提交了简单的答案,也请检查这个以供将来参考phptherightway.com它可以帮助你做很多事情。
  • 谢谢大家。谢谢 scx - 我将尝试该解决方案并查看您的链接 - 干杯,乔

标签: php if-statement


【解决方案1】:

据我所知,它是 2014 年。为什么不使用 DateTime object and do why not do it right way??

$raw = '04-05-2010';
$theDate= \DateTime::createFromFormat('d-m-Y', $raw);
$raw2 = '02-05-2010';
$anotherDate = \DateTime::createFromFormat('d-m-Y', $raw2);

echo 'theDatedate: ' . $theDate->format('m/d/Y') . "<br>";
echo 'anotherDate date: ' . $anotherDate ->format('m/d/Y') . "<br>";

if ($theDate > $anotherDate ) {
    echo "Greater than!<br />";
}

如果你正在学习php,请查看this resource, is worth reading.

【讨论】:

    【解决方案2】:

    要将日期作为字符串进行比较,只需使用 UTC 格式 YYYY-MM-DD。如果要将其作为整数进行比较,则必须将其转换为秒或从年份开始比较,然后再与月份进行比较,依此类推---

    【讨论】:

      【解决方案3】:

      您正在比较字符串。将日期转换为秒,然后进行比较, 适用于所有格式等。

      $theDate = date('d-m-Y', strtotime("04-05-2010"));
      echo "$theDate<br />";
      if(strtotime($theDate) > strtotime("02-05-2010"))
      {
       echo "Greater than!<br />";
      }
      if(strtotime($theDate) > strtotime("02-05-2011"))
      {
       echo "Why am I showing<br />";
      }
      echo "Endof";
      

      【讨论】:

      【解决方案4】:

      它使用字符串比较。因此它首先查看第一个字符,如果大于,则返回true。如果小于,则返回 false。如果相等,则移动到下一个字符。

      您可以通过反向格式化字符串来解决此问题:Y-m-d。或者使用内置运算符:

      if($time > strtotime($text))
      

      $time 以秒为单位指定。

      【讨论】:

        猜你喜欢
        • 2020-08-09
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-10-17
        • 2012-05-11
        • 2019-05-11
        • 2011-04-12
        • 1970-01-01
        相关资源
        最近更新 更多