Проверьте, если заданное время минус сейчас время меньше, чем 60 минут, используя php - PullRequest
0 голосов
/ 24 ноября 2018

Я много читал здесь и много пробовал, но у меня ничего не получилось: (

У меня есть:

$end = new DateTime('22:00');
$now = new DateTime();

if(($end - $now) < 60)
{
    $bijnaTijd = "bijnaTijdJa";
}

Я хочу посмотреть, есть ли разница между$end и текущее время меньше 60 минут. Кто-нибудь может мне помочь?

Ответы [ 2 ]

0 голосов
/ 25 ноября 2018

Вам нужно получить метку времени из DateTime объекта, используя getTimestamp() и сравнить метки времени друг с другом.

Обратите внимание, что отметка времени указана в секундах, поэтому я использовал 60*60 для преобразования минут в секунды.

$end = new DateTime('22:00');
$now = new DateTime();

if (($end->getTimestamp() - $now->getTimestamp()) < 60*60){
    // do something
}

Также вы можете использовать функцию даты вместо DateTime class.

if (strtotime('22:00') - time() < 60*60){
    // do something
}
0 голосов
/ 25 ноября 2018

проверьте этот код, надеюсь, он решит вашу проблему

<?php 
$end        = new DateTime('22:00');
$new_end    = strtotime($end->format('Hi')); //convert to string
$end_h      = idate('h', $new_end); //get the hour
$end_h      = str_pad($end_h, 2, 0, STR_PAD_RIGHT);
$end_m      = idate('i', $new_end);
$end_m      = str_pad($end_m, 2, 0, STR_PAD_LEFT); //get leading zero for above minutes 10
$time_end   = $end_h.''.$end_m;

$now = new DateTime();
$new_now    = strtotime($now->format('Hi'));
$now_h      = idate('h', $new_now);
$now_h      = str_pad($now_h, 2, 0, STR_PAD_RIGHT);
$now_m      = idate('i', $new_now);
$now_m      = str_pad($now_m, 2, 0, STR_PAD_LEFT);
$time_now   = $now_h.''.$now_m;


echo ($time_end - $time_now); //get the result do your logic after this code
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...