Javascript可以转换指定时区的日期,例如欧洲/柏林,并将其传递给浏览器的时区?
有这样的库。虽然从工程的角度来看,这不是一个特别困难的问题,但有许多边缘情况很难正确处理。
建议库:moment.js
手动操作的步骤:
- 计算目标日期的UTZ时区偏移
- 计算浏览器的UTZ时区偏移
- 查找目标和浏览器之间的总时区偏移。
- 调整夏令时问题(是的,这是困难的部分)
使用moment.js,带有moment-timezone插件:
// parse in a particular time zone
var m = moment.tz("2014-12-31T01:23:45", "Europe/Berlin");
// switch to the browser's local time zone
m.local();
// format some output
m.format(); // example: "2014-12-30T16:23:45-08:00"
如果您愿意,可以在一行中完成。
moment.tz("2014-12-31T01:23:45", "Europe/Berlin").local().format()