Получение временного интервала - PullRequest
4 голосов
/ 16 августа 2010

У меня есть две временные метки, одна - текущее время, а другая - будущее

т.е.

Будущее время: 2010-8-17 23:00 Настоящее время: 2010-8-1511: 00

Я хочу настроить систему уведомлений, которая будет отображать интервалы времени между указанными датами.то есть

15 минут до 30 минут до 1 часа до 2 часов до 3 часов до .... .... .... за 1 день до

Я не уверен, как достичьэта задача в php, интересно, если кто-нибудь здесь может подсказать мне, как решить эту задачу

Ответы [ 4 ]

3 голосов
/ 16 августа 2010

Как насчет использования DateTime класса.

<?php
$datetime1 = new DateTime('2010-8-15 11:00');
$datetime2 = new DateTime('2010-8-17 23:00');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%d days, %H hours');
?>

Вывод:

+ 2 дня, 12 часов

1 голос
/ 16 августа 2010
$t1 = getdate($current_date);
$t2 = getdate($future_date);
return $t2[0]-$t1[0];

Это даст вам разницу между двумя датами, измеряемую в секундах.

0 голосов
/ 24 марта 2011

Это то, что я делал, когда мне нужно было то же самое.

Вы можете легко увеличить его, указав количество секунд в неделе, месяце или году.

function getTimeInterval($ts1, $ts2)
{
    $interval = (int)$ts2 - (int)$ts1;
    if ( $interval < 0 ) {
        return false;
    } else {
        $days = floor($interval / 86400); // seconds in one day
        $interval = $interval % 86400;
        $hours = floor($interval / 3600);
        $interval = $interval % 3600;
        $minutes = floor($interval / 60);
        $interval = $interval % 60;
        $seconds = $interval;
    }
    return array(
        'days' => $days,
        'hours' => $hours,
        'minutes' => $minutes,
        'seconds' => $seconds
    );
}
0 голосов
/ 16 августа 2010

Получите разницу между двумя датами, а затем используйте date_parse

// $difference = difference in times
print_r(date_parse($difference));

Это приведет к чему-то вроде

Массив ( [год] => 2006 [месяц] => 12 [день] => 12 [час] => 10 [минута] => 0 [second] => 0 [фракция] => 0,5 [warning_count] => 0 [warnings] => Array () [error_count] => 0 [errors] => Array () [is_localtime] =>)

Подробнее см. http://php.net/manual/en/function.date-parse.php

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