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
Lepaskan: 2024-11-30 06:05:13
asal
876 orang telah melayarinya

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);
}
Salin selepas log masuk

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
Salin selepas log masuk

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!

sumber:php.cn
Kenyataan Laman Web ini
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
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan