首页 > 解决方案 > Javascript:如何根据机器的本地时间制作 ISO 字符串

问题描述

我需要在以下代码片段的顶部创建一个类似 on 的 ISO 字符串:

let somedate = "2021-01-01T00:00"

let anotherDate = new Date().toISOString().substr(0, 16)

关键是,我知道 Javascript 实现使 new Date() 根据机器上的当前时间返回一个日期。但 toISOString() 总是将其重置为 UTC。有什么方法可以根据当地时间而不是 UTC 制作像上面这样的 ISO 字符串?(以某种简单的方式?)

关于 toISOString 的信息来源如下: Source

标签: javascript

解决方案


我在对象上创建了一个新Prototype函数Date

使用LocaleDateStringandLocaleTimeString产生ISOString

let date = new Date();

Date.prototype.toLocaleISOString = function() {
  return `${this.toLocaleDateString().split('/').reverse().join('-')}T${this.toLocaleTimeString()}:${this.getMilliseconds()}`;
}

console.log(date.toLocaleISOString());


推荐阅读