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

Bagaimana untuk Memformat Tarikh dengan Offset Zon Waktu dalam ISO 8601 Menggunakan JavaScript?

Susan Sarandon
Susan Sarandonasal
2024-12-04 00:28:09148semak imbas

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

Tarikh Pemformatan ISO 8601 dengan Offset Zon Waktu dalam JavaScript

Untuk memformat tarikh dengan offset zon waktu dalam format ISO 8601 dengan cekap, manfaatkan garis panduan berikut:

W3C Syor:

Pertimbangkan contoh: "2002-10-10T12:00:00−05:00". Ini menandakan tengah hari pada 10 Oktober 2002, mengambil kira Waktu Penjimatan Siang Tengah (serta Waktu Piawai Timur dalam A.S.). Persamaannya dalam UTC ialah "2002-10-10T17:00:00Z," perbezaan lima jam.

Langkah Pemformatan:

  1. Dapatkan Waktu Tempatan: Gunakan Date() baharu untuk mendapatkan waktu tempatan. Sebagai contoh, "var local = new Date().format("yyyy-MM-ddThh:mm:ss");" menghasilkan "2013-07-02T09:00:00".
  2. Kira UTC Time Offset: Guna getTimezoneOffset() untuk menentukan perbezaan antara waktu tempatan dan UTC. Contohnya, "var offset = local.getTimezoneOffset() / 60;" menghasilkan "7".
  3. Bina URL: Gabungkan waktu tempatan dan ofset untuk membentuk komponen masa URL. "var duration = local "-" offset ":00";" menghasilkan "2013-07-02T09:00:00-7:00".

Mengendalikan Offset Zon Waktu Negatif:

Apabila getTimezoneOffset() mengembalikan nilai negatif , seperti "-120", format harus mematuhi perkara berikut: "2013-07-02T09:00:00 12:00".

Fungsi Pembantu:

Fungsi berguna ini memudahkan pemformatan tarikh ISO 8601:

function toIsoString(date) {
  var tzo = -date.getTimezoneOffset(),
      dif = tzo >= 0 ? '+' : '-',
      pad = function(num) {
          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);
}

var dt = new Date();
console.log(toIsoString(dt));

Atas ialah kandungan terperinci Bagaimana untuk Memformat Tarikh dengan Offset Zon Waktu dalam ISO 8601 Menggunakan 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