Преобразовать секунды в удобочитаемую продолжительность времени

Как мне лучше всего преобразовать 90060 (секунд) в строку «25h 1m»?

В настоящее время я делаю это в SQL:

SELECT 
  IF(
    HOUR(
      sec_to_time(
        sum(time_to_sec(task_records.time_spent))
      )
    ) > 0, 
    CONCAT(
      HOUR(sec_to_time(sum(time_to_sec(task_records.time_spent)))), 
      'h ', 
      MINUTE(sec_to_time(sum(time_to_sec(task_records.time_spent)))),
      'm'
    ), 
    CONCAT(
      MINUTE(sec_to_time(sum(time_to_sec(task_records.time_spent)))),
      'm'
    )
  ) as time
FROM myTable;

Но я не уверен, что это самый удобный метод: -)

Я открыт для предложений, как сделать это как в SQL (иначе, чем я уже выполняется) или в PHP.

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

Примеры желаемых строк: «5 м», «40 м», «1 ч 35 м», «45 ч», «46 ч 12 м».

21
задан ajreal 19 November 2011 в 12:33
поделиться

1 ответ

Вы можете использовать предопределенную функцию sec_to_time ()

sec_to_time (number_of_seconds)

http://dev.mysql.com/doc/refman/5.5/en/date- и времени-functions.html # function_sec до времени

4
ответ дан 29 November 2019 в 06:58
поделиться
Другие вопросы по тегам:

Похожие вопросы: