Rumah >hujung hadapan web >tutorial js >Bagaimana untuk Menjana Tarikh Format ISO 8601 dengan Offset Zon Waktu dalam JavaScript?

Bagaimana untuk Menjana Tarikh Format ISO 8601 dengan Offset Zon Waktu dalam JavaScript?

Linda Hamilton
Linda Hamiltonasal
2024-11-30 06:05:13949semak imbas

How to Generate ISO 8601 Format Dates with Timezone Offsets in JavaScript?

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!

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