Javascript-форум (https://javascript.ru/forum/)
-   Элементы интерфейса (https://javascript.ru/forum/dom-window/)
-   -   Как правильно распарсить строку в формат даты (native js)? (https://javascript.ru/forum/dom-window/76596-kak-pravilno-rasparsit-stroku-v-format-daty-native-js.html)

s24344 25.01.2019 10:28

Как правильно распарсить строку в формат даты (native js)?
 
Здравствуйте. Подскажите, пожалуйста, как правильно решить следующую задачу. У меня есть следующий массив.
const arr = [
	{  
		"id":"1",
		"name":"John",
		"time":"20180625T070000",
	}
]

Мне необходимо распарсить: arr.time

laimas 25.01.2019 10:46

Кто в таком формате поставляет? Должно быть 2018-06-25T07:00:00, тогда new Date('2018-06-25T07:00:00'). Иначе рег. выражением.

ksa 25.01.2019 13:52

Цитата:

Сообщение от s24344
Мне необходимо распарсить: arr.time

Цитата:

Сообщение от laimas
Должно быть 2018-06-25T07:00:00

var str='20180625T070000';
alert(str.replace(/(\d{4})(\d\d)(\d\d\S\d\d)(\d\d)(\d\d)/,'$1-$2-$3:$4:$5'));

laimas 25.01.2019 13:57

ksa, это по уму входной формат должен быть таким, а распаристь фиг его знает что нужно. :) Может быть в итоге и такое:

const arr = [
    { 
        "id":"1",
        "name":"John",
        "time":"20180625T070000",
    }
];
    
var m = 'января февраля марта апреля мая июня июля августа сентября октября ноября декабря'.split(' '),
    d = arr[0].time.match(/(\d{4})(\d{2})(\d{2})T(\d{2})(\d{2})/); //если секунды нужны, то добавить в шаблон две последние цифры

d[2] = m[parseInt(d[2])-1]; //название месяца
d[3] = parseInt(d[3]); //удалить ведущий ноль у дня, это же самое можно сделать и для часов

alert(d.slice(1, -2).reverse().join(' ')+' '+d.slice(-2).join(':')) //если с секундами, то смещение с конца -3

ksa 25.01.2019 14:00

Цитата:

Сообщение от laimas
а распаристь фиг его знает что нужно

Ну, я кагбэ для примера... :D

s24344 26.01.2019 07:01

Всем спасибо за помощь.


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