#php #datetime
#php #дата и время
Вопрос:
Во-первых, прежде чем кто-либо напишет это, я знаю, что об этом уже есть много тем, и я проверил многие из них, но почему-то у меня ничего не работает.
У меня в mysql 2 поля даты и времени (date_in, date_out) Мне просто нужно вычесть дату из date_out, что легко в php 5.3, но я нахожусь на чьем-то сервере и не могу его обновить … дата в обоих полях форматируется следующим образом (2014-06-02 16:43:47)
Приведенный ниже пример работает нормально, как есть (я нашел его где-то в стеке)
$start = new DateTime('2010-10-12');
$end = new DateTime();
$days = round(($end->format('U') - $start->format('U')) / (60*60*24));
НО когда я меняю $start и $end на свои данные из базы данных, последняя строка $days выдает ошибку (the -> format(‘U’)) кажется проблемой. Как это можно исправить?
(разница между концом / началом никогда не будет превышать максимум час)
Комментарии:
1. Попробуйте использовать Carbon для таких вещей: github.com/briannesbitt/Carbon#api-difference
2. @JohnConde кашель 5.2.17 кашель
3. @DaveRandom Я не думаю, что в этом коде было что-то, чего не было в 5.2. Я подозреваю, что проблема в их значениях DB.
4. У меня все еще работает . Ваша проблема заключается в другом.
5. @Fred-ii — Чудо современной медицины! 🙂
Ответ №1:
Я наконец-то понял это!
$date_inA = $sql_array[3];
$date_inB = new DateTime($date_inA);
$date_outA = $sql_array[4];
$date_outB = new DateTime($date_outA);
$diff = round(($date_outB->format('U') - $date_inB->format('U')) / (60*60*24));
Мне нужно было изменить значение объекта string на объект datetime, я думал, что это уже объект date time в БД…
Комментарии:
1. Отлично. 1 рад это слышать. Приветствия