0

我正在尝试使用 MySQL 和 PHP 日期计算日期差异。

我的代码

$ArrivalDate = $variants_data['ArrivalDate'];
$daydiff=floor((abs(strtotime(date("d/m/Y")) - strtotime($ArrivalDate))/(60*60*24)));

输出

<td>'.$daydiff.'</td>

结果 我得到了 93 天而不是 26 天(使用这个计算器得到了 26 天http://easycalculation.com/date-day/number-of-days.php

来自 MySQL 表的ArrivalDate值 = 2013-05-03,并且由于传输延迟等原因而发生变化。

我怎样才能在 PHP 中实现这一点?

4

5 回答 5

3

试试这个

$daydiff=floor((abs(strtotime(date("Y-m-d")) - strtotime($ArrivalDate))/(60*60*24)));

只需更改您当前的日期函数格式,它就会给出您正确的答案,即 26 天。

于 2013-04-08T10:57:46.803 回答
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

于 2013-04-08T10:47:52.250 回答
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

于 2013-04-08T10:46:45.600 回答
1
$days = date("d", $timestamp1) - date("d", $timestamp2);
于 2013-04-08T10:59:45.810 回答
0

试试这个

$ArrivalDate = '2013-05-03';
echo $daydiff=floor((abs(strtotime(date("Y-m-d")) - strtotime($ArrivalDate))/(60*60*24)));

您的日期函数与到达日期的格式不正确

于 2013-04-08T11:09:12.243 回答