假设您网站的用户输入了一个日期范围。
2009-1-1 to 2009-1-3
您需要将此日期发送到服务器进行某些处理,但服务器希望所有日期和时间都采用 UTC。
现在假设用户在阿拉斯加或夏威夷或斐济。由于它们所在的时区与 UTC 完全不同,因此需要将日期范围转换为以下内容:
2009-1-1T8:00:00 to 2009-1-4T7:59:59
使用 JavaScript Date 对象,您将如何将第一个“本地化”日期范围转换为服务器可以理解的内容?
该toISOString()方法以简化的扩展 ISO 格式 ( ISO 8601 ) 返回一个字符串,该字符串的长度始终为 24 或 27 个字符(分别为YYYY-MM-DDTHH:mm:ss.sssZ或卤YYYYYY-MM-DDTHH:mm:ss.sssZ)。时区始终为 0 UTC 偏移量,由后缀“ Z”表示。
toISOString()
YYYY-MM-DDTHH:mm:ss.sssZ
卤YYYYYY-MM-DDTHH:mm:ss.sssZ
Z
来源: MDN 网络文档
您需要的格式是使用该.toISOString()方法创建的。对于本机不支持此方法的旧浏览器(ie8 及以下),可以在此处找到 shim :
.toISOString()
这将使您能够做您需要的事情:
var isoDateString = new Date().toISOString(); console.log(isoDateString);
对于时区工作,moment.js 和 moment.js 时区确实是非常宝贵的工具……尤其是用于在客户端和服务器 javascript 之间导航时区。