@MikMik

Как умножить время на число?

Вроде простая тема, а вот не могу разобраться...
В БД содержится данные в формате time. Требуется взять эти данные, умножить на целое число и вывести/сохранить в формате time (H:i:s)
Пробовал так
tTime = date('H:i:s', StrToTime($dTime) * 5);
но почему-то если например dTime=00:01:00 то результат выдает 20:05:00
  • Вопрос задан
  • 2845 просмотров
Пригласить эксперта
Ответы на вопрос 2
Требуется умножить время на 5! О_О
Может минуты, часы или еще что?

умножая time() вы умножаете на года месяцы дни, часы, минуты и секунды, вполне логично что на выходе вы будите получать разное время при разнице даже в 1 секунду!

Для умножения используйте например mktime
Ответ написан
Комментировать
@MikMik Автор вопроса
Не знаю на сколько правильно я сделал...
private function timeToSecond($time)
    {
        $part = explode(':', $time);
        $second = $part[0]*3600 + $part[1]*60 + $part[2];
        return $second;
    }
    
    private function secondToTime($second)
    {
        $hours = intdiv($second, 3600);
        $minutes = intdiv(($second - $hours*3600), 60);
        $seconds = $second - $hours*3600 - $minutes*60;
        
        return date('H:i:s', mktime($hours,$minutes,$seconds));
    }

    tTime = self::secondToTime(self::timeToSecond($dTime) * 5)


Может кто поправит, подскажет более простой способ?
Я думал для таких простых действий в PHP есть готовые методы. Может просто не нашел? )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы