Как мне найти разницу между типом datetime и текущей датой / временем в php? - PullRequest
0 голосов
/ 19 ноября 2009

У меня есть DATETIME для записи в моей базе данных, которая будет опубликована. Я хочу знать разницу во времени между DATETIME и текущей датой / временем в днях, часах, минутах и ​​секундах. Я думал, что смогу использовать для этого функцию даты, но, возможно, я ошибаюсь.

Это был мой подход:

$now = mktime(0, 0, 0, date("m"), date("d"), date("y"));
$entry_datetime = strtotime($row['end_auction']);

$difference = date("G, i, s",($entry_datetime - $now));
echo $difference;

Результат, который я получил,

13, 20, 00

но это не имеет никакого смысла, поскольку DATETIME в $ row ['end_auction'] - 28 ноября, а сегодня - 19 ноября, с разницей в 13 с лишним часов.

Как мне найти разницу между двумя значениями и как мне отформатировать, чтобы она выглядела как:

9 дней, 10 часов, 32 минуты и 20 секунд

Заранее спасибо!

Ответы [ 2 ]

3 голосов
/ 19 ноября 2009
function datediff( $date1, $date2 )
{
    $diff = abs( strtotime( $date1 ) - strtotime( $date2 ) );

    return sprintf
    (
        "%d Days, %d Hours, %d Mins, %d Seconds",
        intval( $diff / 86400 ),
        intval( ( $diff % 86400 ) / 3600),
        intval( ( $diff / 60 ) % 60 ),
        intval( $diff % 60 )
    );
}

print datediff( "24th November 2009", "now" ) . "\n";
0 голосов
/ 19 ноября 2009

Вы можете использовать UNIX_TIMESTAMP() в mysql, чтобы получить метку времени, а затем управлять ими с помощью функций даты в php

...