Time Bug (Мой скрипт) PHP - PullRequest
       12

Time Bug (Мой скрипт) PHP

0 голосов
/ 04 декабря 2010

У меня происходит странная ошибка. Я просто добавляю несколько минут к времени, отформатированному как «12: 20 вечера», с помощью следующей функции ...

function calc_arb_time($startTime, $amount){
        $startTime = date('Y-m-d') . substr($startTime,0,-2);
        $startTime = strtotime($startTime);


        $seconds = $amount*60;
        $startTime += $seconds;
        $newStartTime = date('g:ia', $startTime);
        return($newStartTime);
    }

echo calc_arb_time('12:20pm',20); // <-- this returns 12:40pm which is great

echo calc_arb_time('1:20pm',20); // this returns 1:40am... Why the AM??

Ответы [ 2 ]

2 голосов
/ 04 декабря 2010

Вы ничего не делаете для сохранения части am или pm ?Также не беспокойтесь о части даты, если вы не собираетесь ее использовать.название функции отражает то, что она делает.Вы должны рассмотреть возможность его изменения.

0 голосов
/ 04 декабря 2010

Возможно, вы захотите взглянуть на DateTime класс:

$date = DateTime::createFromFormat('g:ia', '12:20pm');
$date->add(new DateInterval('PT20M'));
echo $date->format('H:i:s');

$date = DateTime::createFromFormat('g:ia', '1:20pm');
$date->add(new DateInterval('PT20M'));
echo $date->format('H:i:s');

Отпечатки:

12:40:00
13:40:00
...