Rumah >hujung hadapan web >tutorial js >Bagaimanakah Moment.js boleh digunakan untuk mengira dan memformatkan perbezaan masa dengan tepat antara dua DateTimes, mengendalikan perbezaan melebihi 24 jam?

Bagaimanakah Moment.js boleh digunakan untuk mengira dan memformatkan perbezaan masa dengan tepat antara dua DateTimes, mengendalikan perbezaan melebihi 24 jam?

Patricia Arquette
Patricia Arquetteasal
2024-11-26 12:33:14732semak imbas

How can Moment.js be used to accurately calculate and format the time difference between two DateTimes, handling differences exceeding 24 hours?

Dapatkan Perbezaan Masa Antara DateTimes

Apabila bekerja dengan data berasaskan masa, memahami perbezaan masa antara dua tarikh atau masa yang dinyatakan adalah penting . Perbezaan ini boleh dikira menggunakan perpustakaan Moment.js.

Penyelesaian Moment.js

Moment.js menyediakan kaedah yang mantap untuk mengira perbezaan masa. Pertimbangkan contoh berikut:

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

console.log(moment(moment.duration(now.diff(then))).format("hh:mm:ss"));

Kod ini harus mengeluarkan "00:39:30," mewakili perbezaan masa antara "sekarang" dan "kemudian."

Tempoh hingga Penukaran Selang Masa

Jika perbezaan masa melebihi 24 jam, pendekatan di atas mungkin mengembalikan nilai yang salah. Untuk menyelesaikan masalah ini, gunakan penyelesaian yang lebih mantap:

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");

Dalam kod yang disemak ini, kami menukar perbezaan masa kepada milisaat (ms) dan kemudian menggunakan fungsi moment.duration() untuk mencipta objek tempoh ( d). Akhir sekali, kami mengekstrak jam, minit dan saat daripada objek tempoh dan memformatkannya ke dalam selang masa. Pendekatan ini memastikan hasil yang tepat walaupun untuk perbezaan masa lebih daripada 24 jam.

Pemalam Format Tempoh-Momen

Sebagai alternatif, pertimbangkan untuk menggunakan pemalam format tempoh-momen, yang menyediakan kaedah khusus untuk memformat objek tempoh:

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 = d.format("hh:mm:ss");

Dengan pemalam ini, perbezaan masa diformatkan terus ke dalam selang masa tanpa memerlukan pengiraan manual.

Atas ialah kandungan terperinci Bagaimanakah Moment.js boleh digunakan untuk mengira dan memformatkan perbezaan masa dengan tepat antara dua DateTimes, mengendalikan perbezaan melebihi 24 jam?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn