Как рассчитать два часа из двух раз? - PullRequest
3 голосов
/ 16 марта 2012

У меня есть два раза как 10:00 am и 7:00 pm.

И из этого я хочу получить общее количество часов.С того времени я должен получить 9 часов.

Как я это сделаю?

Я взорвал его с помощью :, но затем вычел 7 из 10 и вернул результат3, что неверно, потому что он должен вернуть 9.

Ответы [ 5 ]

4 голосов
/ 16 марта 2012
<?php echo  strtotime('7:00 pm')-strtotime('10:00 am');?>

Получите разницу меток времени

РЕДАКТИРОВАТЬ

эхо (strtotime ('07: 00 pm ') - strtotime ('10: 00 am')) / (60 * 60);// отображает 9

60 * 60 = 1 час

РЕДАКТИРОВАТЬ

$fromTime = '3:00 pm';
$toTime = '12:00 am';
$timediff   =   (strtotime($toTime)-strtotime($fromTime))/(60*60);
echo $timediff >= 0 ?  $timediff : (24 + $timediff);
1 голос
/ 16 марта 2012

Я чувствую, что это поможет вам более эффективно

<?php echo  date('H:i:s',strtotime('7:00 pm')-strtotime('10:00 am'));?>
1 голос
/ 16 марта 2012

Полагаю, вы можете получить информацию am или pm!С этой информацией вы можете сделать if(), чтобы исправить это!

If() это PM, добавьте 12 часов, если это не PM, ничего не делайте.

Сделайте это со временем, которое вы сравниваете:

if (pm==1){
time+=12;
}

так что 10:00 am = false это будет 10:00, а 7:00 pm = true это будет 19: 00

19:00 - 10:00 = 9 hours = win.

1 голос
/ 16 марта 2012

Вы можете использовать функцию PHP strtotime , чтобы преобразовать это время в unix, чтобы вы могли выполнять дальнейшие вычисления с ним.

0 голосов
/ 05 марта 2018

Используйте интерфейс DateTime, его просто

    $day1= new DateTime("today 01:33:26am");
    $dayd2= new DateTime("today 10:40:36pm");         //Output: Hours: 21
    $interval= $day1->diff($day2);
    $h =  ($interval->days * 24) + $interval->h;
    echo "Hours: ".$h

Здесь h = количество часов.$ interval-> days означает, сколько дней получается из разницы, если мы получим один (1) день, то добавим 1 * 24 (часов) = 24 + 21 = 46 часов, но здесь day1 и day2 содержат сегодня, так что это означает 0 * 24= 0 + 21 = 21

Окончательный вывод: 21 час

...