Как я могу привести формат строки DateTime к другому DateTime? - PullRequest
0 голосов
/ 16 мая 2019

У меня есть строка: Thu, 16 May 2019 08:45:15 GMT, и мне нужно привести ее к двум строкам: 16/05/2019 и 08:45:15.

Я пробовал много способов (я видел другой пост StackOverFlow), но я не достиг этого.

Как я мог это сделать?

РЕДАКТИРОВАТЬ 1:

Я пробовал, например, этот код:

console.log(
  new Intl.DateTimeFormat(
    'en-US', { year: 'numeric', month: '2-digit', day: '2-digit', hour: '2-digit', minute: '2-digit', second: '2-digit' }
  ).format("Thu, 16 May 2019 08:45:15 GMT"))

Проблема в том, что все примеры, которые я вижу, взяты из Date.now() (typeof Datetime), а не из пользовательской строки, подобной моей

1 Ответ

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

Вам просто нужно преобразовать эту строку

примечание: поскольку вы используете время по Гринвичу, вы захотите вызвать .getUTC* имена функций

Также обратите внимание, что месяцы равны нулюиндексируется, поэтому вам нужно добавить один к этому.

var d = new Date("Thu, 16 May 2019 08:45:15 GMT");
var dateStr = d.getUTCDate() + '/' + (d.getUTCMonth() + 1) + '/' + d.getUTCFullYear();
var timeStr = d.getUTCHours() + ':' + d.getUTCMinutes() + ':' + d.getUTCSeconds();

console.log(dateStr);
console.log(timeStr);

или, учитывая ваш пример, используя Intl.DateTimeFormat, вы можете просто добавить туда объект new Date() (вместо простой строки), и все готово.

var d = new Date("Thu, 16 May 2019 08:45:15 GMT");

var formatted = Intl.DateTimeFormat(
  'en-US', {
    year: 'numeric',
    month: '2-digit',
    day: '2-digit',
    hour: '2-digit',
    minute: '2-digit',
    second: '2-digit'
  }).format(d);
  
console.log(formatted);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...