我想基于两个日期来计算天数,但是天数计数不正确。
我有2个变量
$date=$date[1];
来自数据库
$now =date('d/m/Y')
;当前日期
$date
变量值为(来自db)05/03/2019
我使用以下脚本对基于两个日期的天数进行计数,但其返回值为120天。
方法1
$date=$date[1]; `Is coming from Database`
$now =date('d/m/Y');
$date1 = new DateTime($now);
$date2 = new DateTime($date);
$diff = $date2->diff($date1)->format("%a");
方法2
$datetime1 = new DateTime($now);
$datetime2 = new DateTime($date);
$difference = $datetime1->diff($datetime2);
echo 'Difference: '.$difference->y.' years, '
.$difference->m.' months, '
.$difference->d.' days';
print_r($difference);
但是在以下输出中返回错误的日期
Difference: 0 years, 4 months, 120 daysDateInterval Object
(
[y] = 0
[m] = 4
[d] = 0
[h] = 0
[i] = 0
[s] = 0
[invert] = 0
[days] = 120
)
为什么这会导致错误的天数输出?
答案 0 :(得分:2)
如果使用'd / m / Y'格式,则应使用createFromFormat
函数将字符串date转换为date对象。例如:
$date1 = new \DateTime();
$date2 = \DateTime::createFromFormat('d/m/Y', '05/03/2019');
$diff = $date2->diff($date1)->format("%a");