【发布时间】:2018-08-08 21:11:41
【问题描述】:
我的页面上有一个 DateTimePicker,用户可以在其中选择本地时区的日期时间。但是当我们将其保存在数据库中时,我需要将其转换为 UTC 并保存。同样,在向用户显示时,我需要再次将 UTC 转换为用户的本地时区。
保存:本地时区到 UTC
显示:UTC 到 LOCAL 时区
由于服务器可能位于其他位置,我认为在客户端本身将值转换为 UTC 是正确的。不确定,如果有更好的方法来做到这一点。所以,在我的 angular5 页面中尝试相同。
对 moment.js 不太熟悉,因此无法完全理解它的实际工作原理。有什么技巧可以更好地在角度上做到这一点?
以下是我的实现方式..
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;
}
感谢您的帮助。
谢谢!
【问题讨论】: