我页面上有一个DateTimePicker,用户可以在其本地时区中选择日期和时间。但是当我们将其保存到数据库中时,我需要将其转换为UTC并保存。同样,在向用户显示此信息时,我需要再次从UTC转换为用户的本地时区。
保存:LOCAL时区转换为UTC
显示:UTC转换为LOCAL时区
由于服务器可能位于其他位置,因此我认为在客户端将值转换为UTC是正确的做法。不确定是否有更好的方法来实现这一点。因此,我正在尝试在我的angular5页面中进行相同的操作。
我对moment.js不太熟悉,因此无法完全理解它的工作方式。有什么建议可以更好地在angular中完成这项工作吗?
以下是我如何实现的...
感谢您的帮助。
谢谢!
保存:LOCAL时区转换为UTC
显示:UTC转换为LOCAL时区
由于服务器可能位于其他位置,因此我认为在客户端将值转换为UTC是正确的做法。不确定是否有更好的方法来实现这一点。因此,我正在尝试在我的angular5页面中进行相同的操作。
我对moment.js不太熟悉,因此无法完全理解它的工作方式。有什么建议可以更好地在angular中完成这项工作吗?
以下是我如何实现的...
convertUtcToLocalString(val : Date) : string {
var d = new Date(val); // val is in UTC
var localOffset = d.getTimezoneOffset() * 60000;
var localTime = d.getTime() - localOffset;
d.setTime(localTime);
return this.formatDate(d);
}
convertUtcToLocalDate(val : Date) : Date {
var d = new Date(val); // val is in UTC
var localOffset = d.getTimezoneOffset() * 60000;
var localTime = d.getTime() - localOffset;
d.setTime(localTime);
return d;
}
convertLocalToUtc(val : Date) : Date {
var d = new Date(val);
var localOffset = d.getTimezoneOffset() * 60000;
var utcTime = d.getTime() + localOffset;
d.setTime(utcTime);
return d;
}
感谢您的帮助。
谢谢!
Date
对象会为您完成所有这些操作。您正在与它作斗争。了解更多关于Date
对象及其工作原理的信息,您就会明白。 - Matt Johnson-Pint