Задать вопрос
@Roman9333
React.js developer

Как исправить ошибку даты 'Invalid date' на IOS?

Подскажите пожалуйста как исправить следующую ошибку, есть дата, которая приходит от бэка, в формате '2021-11-24 20:17:39', я ее преобразую в Nov 24, 2021 используя сначала такую функцию
const getDate = (myDate) =>  
   new Date(myDate).toLocaleDateString(navigator.language, {
   month: 'short',
   day: 'numeric',
   year: 'numeric', 
})


На ПК все работает нормально, но на IOS получаю 'Invalid date' вместо даты.
После чего было найдено решение с помощью date-fns

import { intlFormat } from 'date-fns';

    const getDate = (date) => {
       const userLocale =
       navigator.languages && navigator.languages.length
         ? navigator.languages[0]
         : navigator.language;
    return intlFormat(
       new Date(date),
      {
        month: 'short',
        day: 'numeric',
        year: 'numeric',
      },
     {
        locale: userLocale,
     }
   );
 };

В следствии на ПК все продолжает работать без изменений, но на IOS страница с датой крашится
Вопрос, как мне привести дату к виду Nov 24, 2021 с учетом предпочтений языка браузера юзера?
  • Вопрос задан
  • 700 просмотров
Подписаться 1 Средний Комментировать
Решения вопроса 1
SeaInside
@SeaInside
15 лет пилю все эти штуки
приходит от бэка, в формате '2021-11-24 20:17:39'

Пробел на T замените, оно у вас падает ещё на этапе new Date('2021-11-24 20:17:39')
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
Seasle
@Seasle Куратор тега JavaScript
import { parse, format } from 'date-fns';

const getDate = (date) => format(
    parse(date, 'yyyy-MM-dd HH:mm:ss', new Date()),
    'MMM dd, yyyy'
);
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы