Получить дату локали в том же формате отображения, что и дата UTC в Javascript на стороне сервера - PullRequest
4 голосов
/ 15 мая 2019

У меня есть дата, такая как

let date = new Date('2019-05-15T13:06:41Z')

, которую я хочу получить в том же формате, но в предоставленной локали.Это на сервере, поэтому я также передаю локаль (к которой у меня есть доступ)

, так что представьте, что сервер базируется в США, но у меня есть локаль en-GB.Я хочу получить дату и время в точно таком же формате, например, гггг-мм-ддтчч: мм: сс, но в любой локали, в которую я передаю данные.

Так что в приведенном выше примере он должен возвращаться (учитывая BST)

2019-05-15T14:06:41

Я знаю, что на клиенте я могу сделать:

let date = new Date('2019-05-15T13:06:41Z')
let formatted_date = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + "T" + date.getHours() + ":" + date.getMinutes() + ":" + date.getSeconds() 

, но, как я говорю на сервере, это не будет работать, так как оно основано на времени сервера, а не на локалиМне нужно.

рад использовать моменты или что-то подобное, если это легко сделать

1 Ответ

0 голосов
/ 16 мая 2019

Звучит как работа для момент-времени

Примечание: локали не отображают и не могут отображать 1: 1 в часовые пояса.

let date = new Date('2019-05-15T13:06:41Z');
moment(date).tz('Asia/Tokyo').toISOString(true);       // 2019-05-15T22:06:41.000+09:00
moment(date).tz('Asia/Kolkata').toISOString(true);     // 2019-05-15T18:36:41.000+05:30
moment(date).tz('America/New_York').toISOString(true); // 2019-05-15T09:06:41.000-04:00"
...