以天计算MySQL和PHP日期差异

时间:2013-04-08 10:43:58

标签: php mysql date

我正在尝试使用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中实现这一目标?

5 个答案:

答案 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');

http://www.php.net/manual/en/class.datetime.php

http://www.php.net/manual/en/class.dateinterval.php

答案 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()函数在数据库级别执行此操作。

http://www.w3schools.com/SQl/func_datediff_mysql.asp

答案 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)));

您的约会功能格式与抵达日期格式不正确