Сравнение времени в операторе IF переполнение стека

Я разрабатываю модуль в php, где я должен управлять разницей во времени и действовать в определенную разницу во времени.
Я выбираю значение из базы данных ($ end_date), которая содержит время.

$end_date = $result['end_date'];

получать время сервера от

$date = $this->GetServerTime();

получить разницу во времени между этими двумя

$diffrence = date("Y-m-d H:i:s",strtotime("$date -  $end_date"));

Теперь мне нужно проверить, если разница во времени составляет менее 15 секунд с помощью оператора if. мой подход:

$to_time = strtotime("0000-00-00 00:00:15");
if ($difference < $to_time)
{
echo "here";

}

но я считаю, что я не делаю что-то правильно, как еще мне сравнить это?
Я провел много исследований, но безрезультатно, любая помощь приветствуется.

1

Решение

Всякий раз, когда мне нужно сделать что-то подобное, я просто рассчитываю с отметками времени (в секундах).

$end_date = strtotime($result['end_date']);    # timestamp in s
$date     = strtotime($this->GetServerTime()); # timestamp in s

if ($date - $enddate > 15) {
echo "Here";
}

За минуты и часы вы можете легко умножить это время на 60.

if ($date - $enddate > (15*60)) { # 15 minutes
echo "Here";
}

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

О, кстати: это действительно полезно, если вам нужно сравнить с текущим временем, так как time() возвращает метку времени в секундах.

1

Другие решения

Одним из способов сделать это может быть что-то вроде этого

$to_time = strtotime("2008-12-13 10:42:00");
$from_time = strtotime("2008-12-13 10:21:00");
$difference = $to_time - $from_time;

if($difference > 15){
<CODE>
}

А для тех, кто использует другой формат даты / времени, чем выше, может использовать что-то вроде приведенного ниже кода, вы можете использовать Дата() Параметры функции для указания вашего формата даты.

$dateFormat = "d/m/Y H:i:s";
$tmp_to_time = date_create_from_format($dateFormat,"25/08/2015 10:45:12");
$tmp_from_time = date_create_from_format($dateFormat,"25/08/2015 10:34:15");

$to_time = strtotime(date_format($tmp_to_time , $dateFormat))
$from_time = strtotime(date_format($tmp_from_time , $dateFormat))
$difference = $to_time - $from_time;

if($difference > 15){
<CODE>
}

Вдохновение и основная часть кода найдены из Вот

3

Вот как это можно сделать:

$end_date = strtotime($result['end_date']);
$date     = strtotime($this->GetServerTime());
$difference = $date-$end_date;
$sec = strtotime(15);
if ($difference < $sec){
echo "here";
}
0
По вопросам рекламы ammmcru@yandex.ru
Adblock
detector