Я пытаюсь рассчитать разницу дат в дни, используя дату 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 )
Значение ArrivalDate = 2013-05-03 из таблицы MySQL и изменяется из-за транспортных задержек и т. Д.
Как я могу достичь этого в PHP?
попробуй это
$daydiff=floor((abs(strtotime(date("Ymd")) - strtotime($ArrivalDate))/(60*60*24)));
просто измените свой формат текущей даты, чтобы он дал правильный ответ на 26 дней.
$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 ().
Используйте класс DateTime:
$today = new DateTime; $oneWeekLater = clone $today; $oneWeekLater->modify('+1 week'); $diff = $today->diff($oneWeekLater); echo $diff->format('Ymd H:i:s');
$days = date("d", $timestamp1) - date("d", $timestamp2);
Попробуй это
$ArrivalDate = '2013-05-03'; echo $daydiff=floor((abs(strtotime(date("Ymd")) - strtotime($ArrivalDate))/(60*60*24)));
Функция даты не соответствует формату даты прибытия