我正在尝试使用MySQL和PHP日期来计算日期差异。
我的代码
$ArrivalDate = $variants_data['ArrivalDate'];
$daydiff=floor((abs(strtotime(date("d/m/Y")) - strtotime($ArrivalDate))/(60*60*24)));
输出
<td>'.$daydiff.'</td>
结果 我得到93天而不是26天(使用此计算器http://easycalculation.com/date-day/number-of-days.php得到26天)
来自MySQL表的ArrivalDate 值= 2013-05-03,由于传输延迟等原因而发生变化。
如何在PHP中实现这一目标?
答案 0 :(得分:3)
试试这个
$daydiff=floor((abs(strtotime(date("Y-m-d")) - strtotime($ArrivalDate))/(60*60*24)));
只需更改您当前的日期函数格式,这样它就会给出正确的答案意味着26天。
答案 1 :(得分:2)
使用DateTime类:
$today = new DateTime;
$oneWeekLater = clone $today;
$oneWeekLater->modify('+1 week');
$diff = $today->diff($oneWeekLater);
echo $diff->format('Y-m-d H:i:s');
答案 2 :(得分:1)
$diff = strtotime(date("d/m/Y")) - strtotime($ArrivalDate);
echo "Difference is $diff seconds\n";
$days = floor($diff/(3600*24));
echo "Difference is $days days\n";
您也可以使用DATEDIFF()函数在数据库级别执行此操作。
答案 3 :(得分:1)
$days = date("d", $timestamp1) - date("d", $timestamp2);
答案 4 :(得分:0)
试试这个
$ArrivalDate = '2013-05-03';
echo $daydiff=floor((abs(strtotime(date("Y-m-d")) - strtotime($ArrivalDate))/(60*60*24)));
您的约会功能格式与抵达日期格式不正确