Angular / Javascript Luxon - конвертировать время изменения метки в текущий часовой пояс пользователя - PullRequest
0 голосов
/ 01 июля 2019

Я получил метку времени из базы данных, и мне нужно отобразить ее время в часовом поясе пользователя.

Пример: Бразилия 16:42, Франция 21: 42.

Это чат, поэтому сообщения должны отображаться в часовом поясе каждого пользователя.

У меня есть luxon в проекте, но я не могу использовать любую документацию, которая помогает мне в этом случае.

Я пытался использовать методы в некоторых отношениях

DateTime.local () и DateTime.setZone (localZone)

localZone - это переменная, которая получает локальную область, например: «Европа / Париж».

Спасибо!

1 Ответ

0 голосов
/ 02 июля 2019

Вы можете просто использовать luxon fromMillis для анализа метки времени (при условии, что она указана в миллисекундах) или fromSeconds, если она указана в секундах. Вы также можете передать опцию зоны, чтобы создать объект 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>

Если вы хотите использовать Luxon внутри углового обзора, взгляните на luxon-angular .

...