Подсчет оставшихся минут

1

Я пытаюсь рассчитать, сколько минут осталось в любой день. Я думал, что у меня есть решение, но цифры выглядят немного странно.

Мой код:

date_default_timezone_set('Europe/London');
$sTime = date("d-m-Y H:i:s");  
echo 'The time is: ' . $sTime."<br>";


$NowTime = date("H:i");

echo $NowTime."<br>";

$start = strtotime($NowTime);
$stop = strtotime("23:59");

$diff = ($stop - $start); //Diff in seconds

echo "start ". $start."<br>";
echo "stop " .$stop."<br>";
echo "diff " .$diff."<br>";

$minutes = $diff / 60;

echo "minutes ". $minutes."<br>";

$hours = $minutes / 60;

echo "hours " .$hours."<br>";

Вывод:

15:24

начало 1446909840

стоп 1446940740

diff 30900

H: M 08:35:00

минут 515

часы 8.58333333333

Вопрос: Как преобразовать часы "8.58333333333" в 8.xx минуты.

Большое спасибо за ваше время.

Теги:

2 ответа

1
Лучший ответ

Если у вас есть доступ к классу DateTime вы можете сделать это довольно легко.

        $timezone=new DateTimeZone( 'Europe/London' );
        $now=new DateTime( 'now', $timezone );
        $midnight=new DateTime( date('Y-m-d H:i:s', strtotime('11.59pm') ), $timezone );
        $diff = $now->diff( $midnight );
        $mins=( intval( $diff->format('%h') ) * 60 ) + intval( $diff->format('%i') );

        echo $diff->format('%h hours %i minutes %s seconds').'<br />Minutes left until midnight: '.$mins;
  • 0
    идеальный. Большое спасибо.
1

У меня есть fx, которые вычисляют time-diff по дням, часам, минутам или секундам. Подайте даты и верните результаты. Позы или отрицательные результаты в зависимости от того, как вы его кормите.

$ApptHourTillMidnight=  (GetTimeDiff( date('Y-m-d 23:59:59'),date('Y-m-d H:i:s'),'m') ); //get minutes until midnight

function GetSeconds($time){
$seconds = strtotime($time); return $seconds;

}

function GetTimeDiff($time1,$time2,$type){
$s= GetSeconds($time1);
$e= GetSeconds($time2);
switch (strtolower($type)) {
    case "s";
        return ($s - $e);
    case "m";
        return (($s - $e) / 60);
    case "h";
        return ((($s - $e) / 60)/60);
    case "d";
        return (((($s - $e) / 60)/60)/24);
    return FALSE;  //wrong type
}

}

Ещё вопросы

Сообщество Overcoder
Наверх
Меню