Строка в формате даты в JavaScript - PullRequest
0 голосов
/ 04 марта 2019

У меня есть строки, которые должны быть датами в следующем формате: 01.02.19 (это будет 01 февраля 2019 года)

Я пытаюсь преобразовать эти строки в реальные даты, поэтому я делаюследующее:

var parts ='01.02.19'.split('.');

var mydate = new Date(parts[0], parts[1], parts[2]); 

Результат вышеизложенного - 18 марта 1901 г., а должен быть 01 февраля 2018 г.

Что я делаю не так?

Ответы [ 3 ]

0 голосов
/ 04 марта 2019

Если вы включили замечательный MomentJS , вы можете сделать:

moment("01.02.19", "DD.MM.YY").format("MMM DD YYYY") // Feb 01 2019

0 голосов
/ 04 марта 2019

Вы можете использовать следующий массив для извлечения названия месяца, также изменяя порядок частей в новой дате, например:

new Date(`${parts[1]}/${parts[0]}/${parts[2]}`);  

const monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];

var parts ='01.02.19'.split('.');

var mydate = new Date(`${parts[1]}/${parts[0]}/${parts[2]}`); 

console.log(` ${monthNames[mydate.getMonth()] } ${mydate.getDate()} ${mydate.getFullYear()}`)
0 голосов
/ 04 марта 2019

Конструктор Date занимает наибольшее или меньшее время, поэтому начинается с года.Год должен быть полными четырьмя цифрами, а месяцы с нулевым индексом, поэтому февраль будет месяцем 1.

Чтобы устранить проблему, поменяйте местами части, уменьшите parts[1] на 1 и введите префикс parts[2] с 20

var parts ='01.02.19'.split('.');
var date = new Date("20" + parts[2], parts[1] - 1, parts[0]);

console.log(date.toGMTString());
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...