在不影响实际时间的情况下在时区之间进行转换

Converting between timezones without affecting the actual time?

本文关键字:时区 之间 转换 情况下 影响 时间      更新时间:2023-09-26

我试图存储和检索一个日期对象,无论浏览器设置为哪个时区,该对象都应该在保存时保持一致。

例如

。我有一个7PM IST,当用偏移量转换时,应该返回到我选择的时区的7PM。然后,我希望能够检索与浏览器所在时区的下午7点相同的时间戳。

我已经弄明白了第一部分

var date = moment(date);
var localDate = date.clone();
localDate.tz(timezone); // continent/city from momentjs
localDate.tz(timezone);
localDate.add(date.utcOffset() - localDate.utcOffset(), 'minutes');
localDate.toDate();

最终给我的日期,我可以用来保存到数据库作为UTC(我保存在mongodb)

我不确定如何将其反转回本地时区,以便我可以获得返回值为浏览器时区的7PM。

在保存到数据库之前将日期转换为UTC格式

moment.utc()

无论何时检索从UTC转换到本地时间。

moment.utc(utcDateTime, utcDateTimeFormat).local().format(specifiedFormat)