若要將秒數轉換為天數、小時、分鐘和秒數,請將總秒數除以 86,400 以取得天數,再將餘數除以 3,600 以取得小時,接著將新的餘數除以 60 以取得分鐘,最後的餘數即為剩餘的秒數——這項結果可由 秒數轉 HMS 轉換器 以 HH:MM:SS 字串呈現,其中小時數可超過 23。關鍵在於「經過時間」與「時鐘時間」並不相同:一個已經運行了 98,765 秒的碼錶,其測量結果為 27 小時 26 分鐘 5 秒的運行時間,而非 3 小時 26 分鐘 5 秒的時鐘時間。若像時鐘那樣將小時數在 24 時歸零,將會捨棄一整天,使輸出無法從原始數值反推回去。由於小時數不設上限,每個 HH:MM:SS 值都可以透過將小時乘以 3,600、分鐘乘以 60,再加上秒數欄位,完整還原回原本的秒數。這種可往返的性質正是此格式在記錄檔、計時器、運動紀錄,以及所有需要記錄某件事實際耗時多久的場合中可靠的關鍵。

convert seconds to days hours minutes seconds
將秒數轉換為天數、小時、分鐘和秒數

HH:MM:SS 格式如何記錄天數、小時、分鐘與秒數

「convert seconds to days, hours, minutes, seconds」這個片語描述的是單一運算:將一個總數拆解成其最大的自然子單位。多數人在手邊有一個來自計時器、記錄檔或媒體播放器的原始數字——例如 157,789 秒——並想用人類可讀的方式了解其意義時,就會採用這個運算。他們所期望的輸出格式,是能夠一眼讀懂、複製到聊天視窗、或貼進報告中的形式。

目前存在兩種互相競爭的格式。第一種是「X 天, HH:MM:SS」,其中時鐘欄位固定為 00–23。第二種是「HH:MM:SS」,其中小時欄位可以無限增長。兩者描述的是同一段經過時間。秒數轉 HMS 轉換器採用的是第二種格式,因此 27 小時 26 分鐘 5 秒會顯示為 27:26:05,而非「1 天, 03:26:05」。其優點在於可逆性:未來的讀者可以將小時乘以 3,600、分鐘乘以 60,再加上秒數,準確還原原始輸入,無需先猜測小時數中藏著多少天。

就大多數實際用途——運動紀錄、測試輸出、媒體播放長度、批次執行時間——而言,人們實際在輸入和閱讀的正是這種小時數無上限的格式。若需要嚴格的「X 天, HH:MM:SS」呈現方式,可以自行將總小時數除以 24,或使用包含天數欄位的持續時間格式化工具。

三步驟將秒數轉換為天數、小時、分鐘和秒數

這整個工作都可在秒數轉 HMS 轉換器中完成,它能將任意整數的經過秒數格式化為 HH:MM:SS,且不會將小時數在 24 時歸零。

  1. 在輸入框中輸入一個非負整數——例如 98765。
  2. 選擇「Convert to HH:MM:SS」,並讀取三個結果欄位:總小時數、剩餘分鐘數,以及秒數。
  3. 使用複製按鈕從明細卡片中複製格式化後的值。多日持續時間的小時數會保持在 23 以上;分鐘與秒數則永遠是 00 至 59 之間的兩位數。

輸入僅限於非負整數,因此 98765 為有效值,而 1.5 與 -10 則會被拒絕。上限是 9,007,199,254,740,991——JavaScript 最大的安全整數——這表示從 0 到約 2.85 億年之間的每一個整數秒,都能精確呈現而不會發生浮點數崩潰。

轉換背後的運算

此轉換採用整數除法,因此沒有捨入步驟,也不會產生浮點數尾數。根據 BIPM SI Brochure concise summary,一分鐘等於正好 60 秒,一小時等於正好 3,600 秒,而 NIST 也獨立指出秒是時間長度的 SI 單位。有了這些固定的倍率,分解過程就是機械式的:

  • 總小時數 = floor(總秒數 ÷ 3,600)
  • 總分鐘數 = floor((總秒數 mod 3,600) ÷ 60)
  • 總秒數 = 總秒數 mod 60

以下為一個計算範例,取 98,765 秒:

  • 98,765 ÷ 3,600 = 27.43… → floor = 27 小時
  • 98,765 − (27 × 3,600) = 98,765 − 97,200 = 1,565 秒餘數
  • 1,565 ÷ 60 = 26.08… → floor = 26 分鐘
  • 1,565 − (26 × 60) = 1,565 − 1,560 = 5 秒

因此格式化輸出為 27:26:05。時鐘式的格式化器則會產生 03:26:05,並悄悄捨去一天,這正是為什麼秒數轉 HMS 轉換器是以「經過時間」而非「時鐘時間」為核心來建構。

明確顯示進位的邊界值

一組小的邊界輸入就足以展示所有進位情形。下表使用的是轉換器經過驗證的邊界測試;其數值直接來自該工具,而非重新計算的結果。

輸入(秒)HH:MM:SS 輸出所展示的意義
000:00:00零在每個欄位都產生零
5900:00:59第一次分鐘進位前的最後一個值
6000:01:00第一次分鐘進位
3,59900:59:59第一次小時進位前的最後一個值
3,60001:00:00第一次小時進位
98,76527:26:05小時欄位超過 23——一整天的時間保留在小時之中

98,765 這一行正是區分「經過時間」與「時鐘時間」的關鍵。若將 98,765 視為時鐘讀數並在 24 時歸零,將會得到 03:26:05,但作為測量結果這是錯誤的:它顯示計時器運行了三小時,而實際上它運行了超過一天。

何時應改用其他工具

秒數轉 HMS 轉換器的功能刻意保持精簡。它只負責將一個明確的 SI 秒數分解,僅此而已。幾個相關的問題需要使用不同的工具:

  • 帶小數的秒數、毫秒或微秒。像 1.5 秒這樣的值需要小數分隔符與精度慣例,而本轉換器並未實作。請改用 時間單位轉換器
  • 負值。本頁面描述的是非負的經過區間,因此帶正負號的偏移值會被拒絕。若需表示帶正負號的持續時間,請使用支援 ISO 8601 持續時間格式的日期函式庫。
  • 民用曆法定位。本轉換器不解讀日期、時區、日光節約時間、閏秒或曆法月份,因為這些概念只有在將區間對應到時間軸上才有意義。時鐘上 27 小時的持續時間可能跨越午夜或日光節約時間的邊界;秒數轉 HMS 轉換器刻意忽略這些效應。
  • ISO 8601 持續時間語法。字串 27:26:05 並非有效的 ISO 8601 持續時間。相同的經過區間以 ISO 8601 格式表示為 PT27H26M5S。若下游系統需要 ISO 語法,請勿將冒號分隔的字串重新標記——請直接寫成該系統所需的格式。

對於 MP3 或 MP4 等媒體檔案,其播放長度以帶小數的秒數儲存,請使用播放器或中資料檢視器所回報的播放長度,而非直接讀取檔案。

將 HH:MM:SS 結果還原為秒數

由於小時欄位不設上限,從格式化字串到原始整數的來回轉換是精確的。若要從像 27:26:05 這樣的結果還原原始數值:

  • 27 小時 × 3,600 = 97,200
  • 26 分鐘 × 60 = 1,560
  • 加上 5 秒 = 5
  • 總計:97,200 + 1,560 + 5 = 98,765 秒

這個運算能精確還原輸入,也是該格式適用於記錄檔、計時器、運動紀錄、媒體播放長度、批次執行時間、測試輸出以及簡單資料清理的原因。若來回轉換的結果即使相差一秒,格式化過程就已經遺失了資訊——而這在秒數轉 HMS 轉換器中不可能發生,因為每個欄位都是從餘數計算得出,而非從經過捨入的小數值計算得出。

秒數轉 HMS 轉換器圍繞著單一、定義明確的工作:將一個整數秒數轉換為保留每一個小時的 HH:MM:SS 持續時間。將您的數值放入輸入框,按下轉換,然後複製結果。對於超出此範圍的事項——帶小數的秒數、帶正負號的偏移、曆法定位、ISO 8601——請選擇專門為該工作打造的合適工具。

延伸閱讀:將時間轉換為十進位:小時、分鐘和秒數