формат даты и времени (0000-00-00 00:00:00) до 00:00:00 с оставшимся временем - PullRequest
1 голос
/ 16 февраля 2011

У меня есть переменная $time, установленная некоторое время в будущем.В этом формате 2011-02-15 23:19:44.Теперь мне нужно установить оставшееся время в этом формате 00:00:10.

Если, например, $ time будет 1 час, 3 минуты и 10 секунд в будущем.Формат будет 01:03:10

Ответы [ 2 ]

1 голос
/ 16 февраля 2011

Вам следует взглянуть на использование классов DateTime и DateInterval.

$futureDate = new DateTime($time);
$currentDate = new DateTime();

$dateDiff = $currentDate->diff($futureDate);

echo $dateDiff->format('%H:%I:%S');

Примечание: если разница превышает 24 часа, вам следует взглянуть на значения% Y-% m-% d или% a для общего количества дней.

Если вы хотите, чтобы дополнительные дни отображались с кратностью 24 часа, то:

printf('%d:%s', 
    $dateDiff->format('%a') * 24 + $dateDiff->format('%H'), 
    $dateDiff->format('%I:%S')
);
0 голосов
/ 16 февраля 2011

Это, по сути, та же проблема, что и здесь: Время PHP с момента функции?

Вы хотите сравнить будущую временную метку с текущим временем ... решения в связанном вопросе также применимы к этому.

...