根据PHP的文档,我正在尝试比较2个日期:
$date1 = new DateTime("now");
$date2 = new DateTime("tomorrow");
var_dump($date1 > $date2); //false
所以现在不比明天大,所以它是错误的。现在我有了这个:
$date_start = \DateTime::createFromFormat('d/m/Y H:i', '18/07/2018 16:20');
$date_start_format = $date_start->format('d/m/Y H:i');
$date_end = \DateTime::createFromFormat('d/m/Y H:i', '01/08/2018 21:45');
date_end_format = $date_end->format('d/m/Y H:i');
var_dump($date_start_format > $date_end_format); //True
现在,当我尝试将一个古老的日期与明天进行比较时,就像在示例中一样,我做到了。哪个应返回假,有人可以解释原因吗?
答案 0 :(得分:7)
您应该比较DateTime
个对象:
var_dump($date_start > $date_end);
# bool(false)
通过比较format()
方法的结果,您正在比较字符串,这不是您期望的。
要理解,请逐个字符比较格式化的日期:
18/07/2018 16:20
01/08/2018 21:45
^-- 1 > 0
答案 1 :(得分:0)
尝试计算每个日期的时间戳,然后进行比较
var_dump($ date1-> getTimestamp()> $ date2-> getTimestamp())
答案 2 :(得分:-2)
尝试使用PHP strtotime()
函数。
//Example
$date_start = strtotime(date('d/m/Y H:i', '18/07/2018 16:20'));
$date_end = strtotime(date('d/m/Y H:i', '01/08/2018 21:45'));
var_dump($date_start > $date_end); //false
使用Date
库是否有任何特定原因?