Недавно я оказался счастливым получателем длинной, длинной строки данных. (Эти ребята из SAP всегда знают, что подарить мне на Рождество.) Часть истории, над которой я работал, включала анализ этих данных и отображение даты для каждого элемента на странице.
Это привело к глубокому изучению того, как Javascript обрабатывает даты, и именно об этом мы сегодня поговорим. Данные, которые я получал через API, были примерно такими, как показано ниже (упрощено, чтобы сосредоточиться на датах):
Формат даты — довольно типичный способ получения данных, но наши пользователи не хотят видеть его на экране. «20170909» ничего не значит для жителей США. И хотя вы, безусловно, можете нарезать, соединить и заменить свой путь к более значимому формату даты, гораздо лучше воспользоваться преимуществами методов форматирования данных, которые Javascript уже создал для вас.
Использование объекта даты
Первое, что вам нужно сделать, когда у вас есть строка даты, — отформатировать ее в один из четырех допустимых входных данных даты.
ИСО: «2017–10–09»
Коротко: «15.10.2017»
Длинное: «10 октября 2017 г.»
Полное: «Вторник, 10 октября 2017 г.»
В моем случае данные, которые я получил, имели даты в строке, которая была довольно близка к входным данным ISO. Все, что потребовалось, это быстрая функция forEach, чтобы установить их:
Когда у вас есть дата в приемлемом формате, вы можете превратить ее в объект даты Javascript:
Как только вы там, вы золотой. Теперь вы можете воспользоваться многочисленными методами даты в Javascript для вывода даты на экран желаемым образом.
В моем случае мне нужен формат даты, например «ММ/ДД/ГГГГ», поэтому я выбрал LocaleDateString. Мое окончательное решение выглядело так: