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

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

DDD
DDDasal
2024-12-18 10:45:13146semak imbas

How to Generate ISO 8601 Timestamps with Timezone Offset in JavaScript?

ISO 8601 Pemformatan Tarikh dengan Zon Waktu Offset dalam JavaScript

Matlamat: Bina URL dengan cap masa dalam ISO Format 8601 yang termasuk zon waktu offset.

Pendekatan:

  1. Dapatkan waktu tempatan menggunakan Date() baharu.
  2. Kira zon waktu offset daripada UTC menggunakan getTimezoneOffset( ).
  3. Bina rentetan cap masa dalam format yang diperlukan: yyyy-MM-ddThh:mm:ss±hh:mm.

Pelaksanaan:

Fungsi JavaScript berikut membina cap masa ISO 8601:

function toIsoString(date) {
  var tzo = -date.getTimezoneOffset(),  // Negative offset means UTC is ahead of local time
      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);
}

Sebagai contoh, jika waktu tempatan ialah 2013/07/02 9 pagi dan zon waktu mengimbangi ialah -7 jam (UTC ialah 7 jam lebih awal):

var dt = new Date();
console.log(toIsoString(dt));  // Outputs: "2013-07-02T09:00:00-07:00"

Perhatikan bahawa tanda atau - menunjukkan sama ada waktu tempatan mendahului atau di belakang UTC.

Atas ialah kandungan terperinci Bagaimana untuk Menjana Cap Waktu 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