Время обратного отсчета до даты окончания - PullRequest
0 голосов
/ 26 октября 2018

Я пытаюсь сообщить, сколько часов осталось от подписки пользователя.Формат даты / времени, который я использую, - Y-m-d H:i:s.По сути, я регистрирую время, которое пользователь платит в базе данных, и предполагаю, что срок действия плана истечет через 1 день после совершения платежа.

Что не так с моей логикой здесь при расчете разницы между текущим временем идата окончания?

    $start_time = strtotime($callback->_time_paid());
    $end_time   = 0;

    $end_time = strtotime(date('Y-m-d H:i:s', strtotime($callback->_time_paid().(' +'.$days. 'day'))));

    $static = ($end_time - $start_time);
    $time = (strtotime(date('Y-m-d H:i:s')) - $static) - $static;
    print_r($time);

    $hours = floor($time / 3600);
    $minutes = floor($time / 60);

1 Ответ

0 голосов
/ 26 октября 2018

Не знаю, почему вы вычитаете разницу в секундах в два раза или математику в ваших конверсиях, но мне еще не хватило кофе.

Вот что мне подходит - получите вашу метку времени из БД, еслиэто в будущем, тогда сделай математику.

<?php

$end_time = strtotime(date('Y-m-d H:i:s', strtotime($callback->_time_paid().(' +'.$days. 'day'))));

if($end_time>(time())){
    // how many seconds are we dealing with?
    $seconds=$end_time-(time());
    $hours=(int)($seconds/3600);
    $min=(int)(($seconds%3600)/60);
    $sec=(($seconds%3600)%60);
    print($hours." ".$min." ".$sec);
}else{
    print("Expired already");
}

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