首頁 > web前端 > js教程 > 如何在 JavaScript 中準確計算兩個日期時間之間的時差?

如何在 JavaScript 中準確計算兩個日期時間之間的時差?

Patricia Arquette
發布: 2024-11-19 05:41:02
原創
660 人瀏覽過

How to Accurately Calculate the Time Difference Between Two Datetimes in JavaScript?

如何取得日期時間之間的時差

確定兩個實例之間的時間差是各種程式場景中的一項基本任務。本文深入探討如何使用具體範例有效地計算這種差異。

考慮以下要求:

var now  = "04/09/2013 15:00:00";
var then = "04/09/2013 14:20:30";

//expected result:
"00:39:30"
登入後複製

最初,您可以嘗試以下方法:

var now = moment("04/09/2013 15:00:00");
var then = moment("04/09/2013 14:20:30");

console.log(moment(moment.duration(now.diff(then))).format("hh:mm:ss"))
// outputs 10:39:30
登入後複製

然而,在這個例子中,結果中出現了意外的值「10」。這是因為 moment.duration 將現在與那時之間的差異轉換為包含內部值(如毫秒)的物件。要將持續時間轉換為時間間隔,您可以使用:

duration.get("hours") + ":" + duration.get("minutes") + ":" + duration.get("seconds")
登入後複製

這將產生所需的結果:「00:39:30。」

注意: 此方法僅適用於持續時間少於24 小時的情況。對於較大的持續時間,您需要不同的方法。

var now  = "04/09/2013 15:00:00";
var then = "02/09/2013 14:20:30";

var ms = moment(now,"DD/MM/YYYY HH:mm:ss").diff(moment(then,"DD/MM/YYYY HH:mm:ss"));
var d = moment.duration(ms);
var s = Math.floor(d.asHours()) + moment.utc(ms).format(":mm:ss");

// outputs: "48:39:30"
登入後複製

在這種情況下,我們將時間差計算為毫秒,將其轉換為持續時間物件 d,然後使用 UTC 時間對其進行格式化。這給了我們正確的結果,「48:39:30。」

或者,您可以使用 moment-duration-format 外掛程式來簡化格式化過程。

以上是如何在 JavaScript 中準確計算兩個日期時間之間的時差?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板