Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 25.01.2019, 10:28
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

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

Мне необходимо распарсить: arr.time
Ответить с цитированием
  #2 (permalink)  
Старый 25.01.2019, 10:46
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

Кто в таком формате поставляет? Должно быть 2018-06-25T07:00:00, тогда new Date('2018-06-25T07:00:00'). Иначе рег. выражением.
Ответить с цитированием
  #3 (permalink)  
Старый 25.01.2019, 13:52
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от 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'));
Ответить с цитированием
  #4 (permalink)  
Старый 25.01.2019, 13:57
Профессор
Отправить личное сообщение для laimas Посмотреть профиль Найти все сообщения от laimas
 
Регистрация: 14.01.2015
Сообщений: 12,990

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
Ответить с цитированием
  #5 (permalink)  
Старый 25.01.2019, 14:00
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,121

Сообщение от laimas
а распаристь фиг его знает что нужно
Ну, я кагбэ для примера...
Ответить с цитированием
  #6 (permalink)  
Старый 26.01.2019, 07:01
Профессор
Отправить личное сообщение для s24344 Посмотреть профиль Найти все сообщения от s24344
 
Регистрация: 12.08.2015
Сообщений: 206

Всем спасибо за помощь.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как правильно распарсить массив? man Общие вопросы Javascript 3 19.10.2011 17:02
Как правильно очистить maxlength в input? Маэстро Events/DOM/Window 10 22.06.2011 18:14
Как правильно прописать свой код в .js Всеми_Любимый Элементы интерфейса 6 23.02.2010 21:34
Вывод JS значения в одну строку в HTML velo Общие вопросы Javascript 7 15.12.2009 03:57
Как правильно послать XML в POST запросе LowCoder AJAX и COMET 10 15.07.2009 23:20