我有两个变量,包含格式为
的日期字符串$four_days_have_passed = "07-14-2013";
$now = "07-10-2013";
我检查了FirePHP中的输出,日期是正确的。
然后我尝试比较这些,
if (strtotime($now) < strtotime($four_days_have_passed))
{
Do Stuff
}
为什么IF语句中的代码永远不会执行?
答案 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)
我看到你接受了答案,但只是为了确保你理解。有两种情况可以解析日期。
您有错误,因为您提供了欧洲格式"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日