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!