我的页面上有一个 DateTimePicker,用户可以在其中选择本地时区的日期时间。但是当我们将其保存在数据库中时,我需要将其转换为 UTC 并保存。同样,在向用户显示时,我需要再次从 UTC 转换为用户的本地时区。
正在保存:将本地时区转换为 UTC
显示:UTC 到本地时区
由于服务器可能驻留在其他位置,我认为在客户端本身将值转换为 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;
}
感谢您的帮助。
谢谢!
最佳答案
您可以在 Angular 中使用 moment 模块。
import * as moment from "moment";
从本地到UTC:
moment(local_date).toDate();
从 UTC 到本地:
moment.utc(utc_date).toDate()
关于angular - 如何在 angular5 中将 Local 转换为 UTC,将 UTC 转换为 Local?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49038881/