javascript luxon gmt到语言环境的时间

时间:2018-10-17 18:44:45

标签: javascript luxon

我在gmt区域的数据库中有一个时间戳。如何显示基于用户时区的时间?目前,我正在这样的时间

return luxon.DateTime.fromSQL(created_at).setZone('local');

它将返回以gtm为单位的时间。

2 个答案:

答案 0 :(得分:3)

一种更清洁的处理方式是仅告诉解析器时间以GMT表示:

DateTime.fromSQL(current_time, {zone: "utc"}).toLocal()

为了进一步说明这一点,您原著中发生的事情是将时间字符串解释为GMT时间,但Luxon不知道。因此它将字符串解释为本地时间,该时间与偏移量所指的时间不同。但是,如果Luxon知道“这是格林尼治标准时间表示的”,那么它将首先获得正确的时间。

答案 1 :(得分:0)

使用此方法解决的问题:

let offset = - (new Date().getTimezoneOffset() / 60);
return luxon.DateTime.fromSQL(created_at).plus({hours: offset}).toLocaleString(luxon.DateTime.TIME_SIMPLE)