我编写了以下代码来比较变量中的日期与今天的日期。如果变量中的日期大于今天的日期,则应回显错误消息。但就我而言,它无法正常工作。
$form_data['trans_date'] = '12-11-2014';//Date to be compared with today's date in mm-dd-yyyy format
if(strtotime(date('m-d-Y')) < strtotime($form_data['trans_date'])) {
echo 'Error';
} else {
echo 'Success';
}
实际上今天的日期是12-11-2014,即2014年12月11日,我间接地将今天的日期与它本身进行了比较。所以我不应该收到错误消息,但我收到了错误消息。
我尝试通过打印时间戳值来调试代码,然后得到以下值:
Today's date 1413097200
Trans date 1415779200
实际上,由于Trans Date时间戳值略大于今天日期的时间戳值,因此错误即将到来。
但它不应该,因为我正在比较的日期不大于今天的日期。
那么我应该如何解决这个问题呢?
这些值差异不大,但一个月不同:
将时间戳转换回日期会产生:
Today: Sun, 12 Oct 2014 07:00:00 GMT
Trans date: Wed, 12 Nov 2014 08:00:00 GMT
代码中的错误是strtotime期望"d-m-Y"或"m/d/Y"。