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