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

在PHP中使用strottime()比较两个日期,php,date,strtotime,Php,Date,Strtotime,我有两个变量,其中包含格式中的日期字符串 $four_days_have_passed = "07-14-2013"; $now = "07-10-2013"; 我已经检查了FireHP中的输出,日期是正确的 然后我试着这样比较它们 if (strtotime($now) < strtotime($four_days_have_passed)) { Do Stuff } if(strotime($now)

我有两个变量,其中包含格式中的日期字符串

$four_days_have_passed = "07-14-2013";
$now = "07-10-2013";
我已经检查了FireHP中的输出,日期是正确的

然后我试着这样比较它们

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

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

格式(这样使用时)是DD-MM-YYYY。没有第14个月。

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

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

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


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

  • 美国-月/日/年
  • 欧洲-日.月.年或日.月.年
  • 您有错误,因为您提供了欧洲格式
    “07-14-2013”
    ,并且一年中没有14个月

    适合您的格式如下所示:

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

    此外,为了比较数据时间,最好使用面向对象的解决方案和数据时间对象。您可以阅读更多内容使用
    yyyy-mm-dd
    格式处理
    strotime()
    函数是最简单的方法。这是db date中的正常格式。如果您使用此格式,将有助于轻松比较两个日期。

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

    day/month/year
    

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

    我强制格式为
    $now=date('m-d-Y',strottime($getCurrentDate.+0天”)$四天过去=日期('m-d-Y',标准时间('getRepDate.+4天”)@David Folksman:不,你没有
    strotime
    不希望它是美国格式。因此我为什么使用m-d-y格式,我不明白你的答案?@David Folksman:
    strotime
    接受日期为
    YYYY-MM-DD
    (首选)或
    DD-MM-YYYY
    格式。就这样。这里有更多被接受的格式:在这里工作<代码>日期默认时区设置(“欧洲/伦敦”);$getCurrentDate=str_replace(“/”、“-”、$”请求[“日期])$四天过去=日期('m-d-Y',标准时间('getCurrentDate.+4天”);$now=日期('m-d-Y',标准时间($rep1.+0天”);回音四天过去了;回声“
    ”$now;如果($now<$four-days\u已经过去){echo“
    booya”}
    他不需要
    /
    他需要正确的格式。他也可以使用
    14-07-2013
    :)欢迎使用SO。为了让你的答案真正有用,你应该添加一个小例子。