如何将JavaScript日期转换为UTC?
假设您网站的用户输入日期范围。
2009-1-1 to 2009-1-3
您需要将此日期发送到服务器以进行一些处理,但服务器预计所有日期和时间均为UTC。
现在假设用户在阿拉斯加或夏威夷或斐济。 由于它们的时区与UTC完全不同,因此日期范围需要转换为如下所示的内容:
2009-1-1T8:00:00 to 2009-1-4T7:59:59
使用JavaScript Date对象,您如何将第一个“本地化”日期范围转换为服务器将理解的内容?
您需要的格式是使用.toISOString()
方法创建的。 对于本身不支持此方法的旧浏览器(ie8和以下版本),可以在此处找到垫片:
这会让你有能力做你需要的东西:
var isoDate = new Date('yourdatehere').toISOString();
对于时区工作,moment.js和moment.js时区是非常宝贵的工具...特别是在客户端和服务器之间导航时区javascript。
简单而愚蠢
var now = new Date();
var now_utc = Date.UTC(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),
date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
return new Date(now_utc);
这是我的方法:
var now = new Date();
var utc = new Date(now.getTime() + now.getTimezoneOffset() * 60000);
生成的utc
对象并不是真正的UTC日期,而是本地日期转换为与UTC时间匹配(请参阅注释)。 然而,在实践中,它完成了这项工作。
上一篇: How do you convert a JavaScript date to UTC?
下一篇: How can I get the current date and time in UTC or GMT in Java?