Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Парсинг даты в определенном формате (https://javascript.ru/forum/misc/80046-parsing-daty-v-opredelennom-formate.html)

Tipylja 21.04.2020 11:27

Парсинг даты в определенном формате
 
Здравствуйте. У меня есть дата вот в таком формате
dd-mm-yyyy

Мне нужно ее распарсить при помощи метода Date.parse
Date.parse("21-4-2020")

Но я получаю Nan
Хотя вот в таком формате yyyy-mm-dd парсится нормально.
Date.parse("2020-4-21")

Подскажите, как решить такой вопрос можно?

Tipylja 21.04.2020 11:42

Сделал так...
const item = "test_21-4-2020.zip";
const date = item
        .slice(0, item.indexOf("."))
        .slice(item.indexOf("_") + 1, item.length);

const [day, mounth, year] = date.split("-");      
const timeStamp = Date.parse(`${year}-${mounth}-${day}`);
console.log("-> timeStamp", timeStamp);

Может есть какой-то универсальный метод для этого дела?=)

voraa 21.04.2020 12:35

Универсального метода для получения даты из произвольной строки точно не существует.

Nexus 21.04.2020 14:23

Цитата:

Сообщение от Tipylja
Может есть какой-то универсальный метод для этого дела?=)

Если только внешняя библиотека или свой велосипед.

Например:
https://github.com/wanasit/chrono
const chrono = require('chrono-node');

console.log(
    chrono.parseDate('21-4-2020').toString()// Tue Apr 21 2020 12:00:00 GMT+0300 (GMT+03:00)
);

Malleys 21.04.2020 15:11

Цитата:

Сообщение от Tipylja
Может есть какой-то универсальный метод для этого дела?=)

Если только развернуть дату...
const item = "test_21-4-2020.zip";
const timeStamp = Date.parse(item.replace(/^.*_|\..*$/g, "").split("-").reverse().join("-"));
console.log("→ timeStamp", timeStamp);


Часовой пояс GMT +3, время: 19:51.