首頁 >web前端 >js教程 >如何在 JavaScript 中產生帶有時區偏移的 ISO 8601 時間戳記?

如何在 JavaScript 中產生帶有時區偏移的 ISO 8601 時間戳記?

DDD
DDD原創
2024-12-18 10:45:13149瀏覽

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

ISO 8601 在JavaScript 中格式化帶有時區偏移的日期

目標: 構造一個有一個構造一個有建構ISO 時間戳的URL包含時區的8601格式offset.

方法:

  1. 使用 new Date() 取得當地時間。
  2. 使用getTimezoneOffset( 計算與UTC 的時區偏移量).
  3. 依照所需格式建構時間戳字串: yyyy-MM-ddThh:mm:ss±hh:mm.

實作:

以下JavaScript 函式建構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);
}

例如,如果當地時間是2013/07/02 上午9 點,時區偏移量為-7 小時(UTC 比UTC 早7 小時):

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

請注意,或- 符號表示本地時間是早於還是晚於UTC。

以上是如何在 JavaScript 中產生帶有時區偏移的 ISO 8601 時間戳記?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn