MKTime-如果月份不同,则出错


MKTime - error if month is different

我需要检查出发日期是否在到达日期之后。

例如:

arrivaldate 13/3/2012 departure 14/3/2012 -> error = false
arrivaldate 13/3/2012 departure 12/3/2012 -> error = true
$timestamp = mktime(0,0,0,$arrivaldd,$arrivalmm,$arrivalyy);
$timestamp2 = mktime(0,0,0,$departuredd,$departuremm,$departureyy);
if ($timestamp2 <= $timestamp) {$error1 = true;} else {$error1 = false;}

它运行良好,但如果到达日期为2012年3月31日,离开日期为2012月4日,则$error设置为false。

mktime期望的是参数,其顺序如下:小时、分钟、秒、月、日、年。日期和月份的顺序相反。请参阅PHP.net参考页面

在这个函数中,mktime参数如下

mktime(hrs,min,sec,month,day,year)

并且你先给出日期,然后给出月份。所以生成的时间戳是出发高于到达,所以你会得到错误

这是因为mktime的参数是:

mktime(hours, minute, seconds, month, day, year);

您已将月/日参数反转