我需要检查出发日期是否在到达日期之后。
例如:
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);
您已将月/日参数反转