Tarikh Format ISO 8601 dengan Offset Zon Waktu dalam JavaScript
Dalam JavaScript, membina tarikh dalam format ISO 8601 dengan offset zon waktu boleh menjadi mencabar kerana kemungkinan mengimbangi zon waktu negatif. Artikel ini menangani isu ini dan menyediakan penyelesaian.
Memahami Format
Format ISO 8601 menentukan tarikh seperti berikut: YYYY-MM-DDThh:mm:ss± hh:mm. Contohnya, 2002-10-10T12:00:00-05:00 mewakili tengah hari pada 10 Oktober 2002, dalam Central Daylight Savings Time (lima jam di belakang UTC).
Mencari Waktu Setempat dan UTC Offset
Untuk membina rentetan ISO 8601, kita mesti mendapatkan waktu tempatan menggunakan Date() baharu dan hitung offset UTC menggunakan getTimezoneOffset(). Offset diperoleh dalam beberapa minit, jadi kami membahagikannya dengan 60 untuk mendapatkan bilangan jam.
Mengendalikan Offset Zon Waktu Negatif
Fungsi getTimezoneOffset() boleh mengembalikan negatif nilai. Dalam kes sedemikian, kita mesti memformat offset secara berbeza. Contohnya, offset selama -120 minit hendaklah dipaparkan sebagai 02:00 (dua jam lebih awal daripada UTC).
Fungsi Pembantu untuk Pemformatan
Untuk memudahkan proses , fungsi pembantu, toIsoString, boleh digunakan untuk memformat tarikh dalam format ISO 8601 dengan zon waktu offsets:
function toIsoString(date) { var tzo = -date.getTimezoneOffset(), // Make the offset positive dif = tzo >= 0 ? '+' : '-', // Determine the sign pad = function(num) { // Ensure two-digit representation return (num < 10 ? '0' : '') + num; }; return date.getFullYear() + '-' + pad(date.getMonth() + 1) + '-' + pad(date.getDate()) + 'T' + pad(date.getHours()) + ':' + pad(date.getMinutes()) + ':' + pad(date.getSeconds()) + dif + pad(Math.floor(Math.abs(tzo) / 60)) + ':' + pad(Math.abs(tzo) % 60); }
Fungsi ini mengambil tarikh sebagai hujah dan memformatkannya mengikut spesifikasi ISO 8601, termasuk offset zon waktu.
Contoh Penggunaan
Kod berikut menunjukkan cara menggunakan toIsoString fungsi:
var dt = new Date(); console.log(toIsoString(dt)); // Outputs the date in ISO 8601 format with timezone offset
Menggunakan pendekatan ini, anda boleh memformat tarikh dengan mudah dalam JavaScript mengikut piawaian ISO 8601, memastikan ia mematuhi format yang betul.
Atas ialah kandungan terperinci Bagaimana untuk Menjana Tarikh Format ISO 8601 dengan Offset Zon Waktu dalam JavaScript?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!