![]() |
1
1
字符串(如“2018-02-09T12:00:00.000Z”)是定义日期的标准化方法,由 ISO 8601 . 有多种方法可以在JavaScript中构造日期对象。从 Date MDN docs ,我们可以看到,实现这一点的方法之一是提供要解析的字符串。甚至还有一个例子:
但你不应该那样做。 该页面警告说,不建议通过解析字符串来创建日期,因为它依赖于实现(即,根据浏览器的不同,其工作方式可能不同)。 无论如何,重要的是要提到,在ISO 8601中,以字母“Z”结尾的时间戳有一个特殊的含义——它表示,不考虑当地时间,而应该将日期解释为UTC。因此,无论您决定如何构造日期对象,都不要忘记决定是要本地化时间戳还是参考UTC标准时间。 构建日期对象的安全方法是分别提供参数:
您还可以考虑使用一个名为 MomentJS ,在撰写本文时其大小为16.3 kB(绝对值得考虑),这是一个非常著名且使用广泛的网站,每月下载量超过1200万次(在撰写本文时)。 |
![]() |
2
1
创建日期有多种方法,可以传递单个字符串、单个整数或多个参数。最好的方法取决于你的具体情况。 到目前为止,最可靠的方法是使用带有离散值的日期构造函数。如果您希望为18.02.09 12:00创建日期,则假定为YY。嗯。DD HH:mm使用:
将创建2018年2月9日当地时间中午12点的日期,其中“本地”根据主机系统时区偏移量确定。 强烈建议不要将字符串传递给日期构造函数,原因如下 Why does Date.parse give incorrect results? ,因此不要使用内置解析器,它不可靠,并且可能会得到意外的结果。 字符串“2018-02-09T12:00:00.000Z”将被视为UTC,因此由此创建的日期将被主机本地偏移量抵消。使用UTC时差将不同于两个日期的主机时区偏移发生变化的本地时差,例如跨越夏令时边界的地方。 因此,“正确”或“最佳”的方式在很大程度上取决于您正在尝试做什么、输入值和您希望实现的结果。底线是永远不要使用内置解析器,始终使用定制函数或使用库手动解析字符串。 |
![]() |
Sam · ES5 Javascript封装的对象自动增量id 7 年前 |
![]() |
darkiron · vuejs内容可编辑和回退问题 7 年前 |
![]() |
Phillip YS · 如何对对象中特定键的所有值求和? 7 年前 |