我有两个包含日期字符串的变量,格式为
$four_days_have_passed = "07-14-2013";
$now = "07-10-2013";
我已经检查了 FirePHP 中的输出并且日期是正确的。
然后我试着像这样比较它们,
if (strtotime($now) < strtotime($four_days_have_passed))
{
Do Stuff
}
为什么 IF 语句中的代码从不执行?
如果要使用 MM/DD/YYYY 格式,则需要/
分隔符。
$four_days_have_passed = "07/14/2013";
$now = "07/10/2013";
从手册: -
m/d/y 或 dmy 格式的日期通过查看各个组件之间的分隔符来消除歧义:如果分隔符是斜杠 (/),则假定为美式 m/d/y;而如果分隔符是破折号 (-) 或点 (.),则假定为欧洲 dmy 格式。
我看到您接受了答案,但只是为了确保您理解。解析日期有两种情况。
您有错误,因为您提供了欧洲格式 "07-14-2013"
并且一年中没有 14 个月。
适合您的格式是以下之一:
14-07-2013
- 欧洲14.07.2013
- 欧洲07/14/2013
- 美国人Morover,要比较数据时间,最好使用面向对象的解决方案和 DataTime 对象。你可以在这里阅读更多。
格式(当这样使用时)是 DD-MM-YYYY。没有第 14 个月。
在欧洲,特别是在法国, 我们也使用这种带有斜线分隔符的格式:
day/month/year
法国日期示例:26/08/2019
函数的情况strtotime()
是使用 as 格式处理的最简单的方法yyyy-mm-dd
。这是 db 日期中的正常格式。如果您使用此格式,则有助于轻松比较两个日期。