Рассчитать разницу между двумя датами - PullRequest
8 голосов
/ 09 апреля 2011

Я использую PHP и MySQL и хочу вычислить разницу во времени между двумя датами. У меня есть таблица сообщений, в этой таблице createdate это одно поле. Я хочу узнать разницу во времени и дате с текущей датой в формате 1 day 2 hours ago. Как лучше всего это сделать?

Ответы [ 3 ]

6 голосов
/ 09 апреля 2011

Используйте встроенные в PHP функции даты:

<?php
    $start_time = "Y-m-d H:i:s"; // fill this in with actual time in this format
    $end_time = "Y-m-d H:i:s"; // fill this in with actual time in this format

    // both of the above formats are the same as what MySQL stores its
    // DATETIMEs in

    $start = new DateTime($start_time);
    $interval = $start->diff(new DateTime($end_time));

    echo $interval->format("d \d\a\y\s h \h\o\u\r\s");
4 голосов
/ 09 апреля 2011
SELECT TIMESTAMPDIFF(HOUR,createdate,NOW()) as diff_in_hours FROM table1;

Затем на стороне php вы можете легко преобразовать значение diff_in_hours в формат дни + часы.

1 голос
/ 09 апреля 2011

Вы можете использовать функции DATEDIFF() и TIMEDIFF() в MySQL.

SELECT DATEDIFF(CURDATE(), createdate) AS output_day, 
TIMEDIFF(CURDATE(), createdate) AS output_time 
FROM message_table

Для output_day это уже в единицах дня.Но output_time требует дополнительных манипуляций, чтобы получить часовую часть разницы во времени.

Надеюсь, это поможет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...