0

我从数据库中得到了一个时间戳,我需要在用户的时区中显示它的时间。

例如:巴西 16:42,法国 21:42。

这是一个聊天,所以消息需要显示在每个用户的时区。

我在项目中有luxon,但在这种情况下我无法使用任何对我有帮助的文档。

我尝试以某些方式使用这些方法

DateTime.local()DateTime.setZone(localZone)

localZone 是接收本地区域的变量,例如:“Europe/Paris”。

谢谢!

4

1 回答 1

2

您可以简单地使用 luxonfromMillis来解析时间戳(假设它以毫秒为单位)或者fromSeconds它是否以秒为单位。您还可以通过 zone 选项使用给定的时区创建 luxon 对象。可以用来toFormat()以所需格式显示时间。你可以有类似下面的东西:

DateTime.fromMillis(timestamp, {zone: localZone}).toFormat('HH:mm')

如果需要,您还可以使用setZone更改区域属性,这里是使用示例数据的片段:

const DateTime = luxon.DateTime;
let curTimestamp = 1562061791000;
let time = DateTime.fromMillis(curTimestamp)
console.log('Local time:', time.toFormat('HH:mm') );
console.log('Brazil time:',  time.setZone('America/Sao_Paulo').toFormat('HH:mm') );
console.log('France time:', DateTime.fromMillis(curTimestamp, {zone: 'Europe/Paris'}).toFormat('HH:mm') );
<script src="https://cdn.jsdelivr.net/npm/luxon@1.16.0/build/global/luxon.js"></script>

如果您想在 Angular 视图中使用 Luxon,请查看luxon-angular

于 2019-07-02T10:43:35.353 回答