在PHP中使用strtotime()比较两个日期

时间:2013-07-09 23:17:56

标签: php date strtotime

我有两个变量,包含格式为

的日期字符串
$four_days_have_passed = "07-14-2013";
$now = "07-10-2013";

我检查了FirePHP中的输出,日期是正确的。

然后我尝试比较这些,

if (strtotime($now) < strtotime($four_days_have_passed))
{
  Do Stuff
}

为什么IF语句中的代码永远不会执行?

5 个答案:

答案 0 :(得分:5)

如果您想使用MM / DD / YYYY格式,则需要/分隔符。

$four_days_have_passed = "07/14/2013";
$now = "07/10/2013";

<强> From the manual: -

  

通过查看各个组件之间的分隔符来消除m / d / y或d-m-y格式的日期:如果分隔符是斜杠(/),则假设为美国m / d / y;而如果分隔符是破折号( - )或点(。),则假定为欧洲d-m-y格式。

答案 1 :(得分:2)

格式(如果使用的话)是DD-MM-YYYY。没有第14个月。

答案 2 :(得分:2)

我看到你接受了答案,但只是为了确保你理解。有两种情况可以解析日期。

  1. 美国 - 月/日/年
  2. 欧洲 - day.month.year或day-month-year
  3. 您有错误,因为您提供了欧洲格式"07-14-2013"并且一年中没有14个月。

    适合您的格式之一是:

    • 14-07-2013 - 欧洲
    • 14.07.2013 - 欧洲
    • 07/14/2013 - 美国人

    Morover,为了比较数据时间,最好使用面向对象的解决方案和DataTime对象。您可以阅读更多here.

答案 3 :(得分:0)

strtotime()函数的情况是使用格式yyyy-mm-dd处理的最简单方法。这是db date中的正常格式。如果您使用此格式,则可以轻松比较两个日期。

答案 4 :(得分:0)

在欧洲,尤其是在法国, 我们还将这种格式与斜杠分隔符一起使用:

day/month/year

法国日期的示例:2019年8月26日