Konvertiert Sekunden in eine vom Menschen lesbare Zeitdauer

Wie würde ich am besten konvertieren 90060 (Sekunden), um eine Zeichenfolge von "25h 1m"?

Zurzeit mache ich dies in 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;

Aber ich bin nicht sicher, es ist die einfachste Methode 🙂

Ich bin offen für Vorschläge, dies zu tun, sowohl in SQL (anders als ich bin schon dabei) oder in der PHP.

EDIT:

Beispiele von gewünschten Zeichenfolgen: "5m", "40m", "1h 35m", "45h" "46h 12m".

InformationsquelleAutor der Frage Henno | 2011-11-19

Schreibe einen Kommentar