JavaScript 中带有时区偏移的 ISO 8601 格式日期
在 JavaScript 中,构建带有时区偏移的 ISO 8601 格式的日期可能具有挑战性,因为潜在的负时区偏移。本文解决了这个问题并提供了解决方案。
了解格式
ISO 8601 格式指定日期如下:YYYY-MM-DDThh:mm:ss±时:嗯。例如,2002-10-10T12:00:00-05:00 表示 2002 年 10 月 10 日中午,采用中部夏令时(比 UTC 晚五个小时)。
查找本地时间和 UTC Offset
要构造 ISO 8601 字符串,我们必须首先使用以下方法获取当地时间new Date() 并使用 getTimezoneOffset() 计算 UTC 偏移量。偏移量以分钟为单位获得,因此我们将其除以 60 即可得到小时数。
处理负时区偏移量
getTimezoneOffset() 函数可以返回负数价值观。在这种情况下,我们必须以不同的方式格式化偏移量。例如,-120 分钟的偏移量应显示为 02:00(比 UTC 早两小时)。
格式化帮助函数
简化流程,辅助函数 toIsoString 可用于使用时区偏移量来格式化 ISO 8601 格式的日期:
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此函数采用日期作为参数,并根据 ISO 8601 规范对其进行格式化,包括时区偏移。
用法示例
以下代码演示了如何使用 toIsoString 函数:
var dt = new Date(); console.log(toIsoString(dt)); // Outputs the date in ISO 8601 format with timezone offset使用这种方法,您可以根据 ISO 8601 标准轻松地在 JavaScript 中格式化日期,确保它们遵循正确的格式。
免责声明: 提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发到邮箱:[email protected] 我们会第一时间内为您处理。
Copyright© 2022 湘ICP备2022001581号-3