@mr_diablol

Почему на windows возникает ошибка, а на linux работает?

Первый раз с таким сталкиваюсь. Код на Linux - работает, а на WIndows, хоть и запускается, но пишет Invalid date

У кого-нибудь такое бывало? Как-нибудь решили?

Фрагмент кода из чата на сайте:
const formateDate = (date) => {
        const localDate = moment(date).format('DD MMMM');
        return localDate;

   const byDate = useMemo(() => messages.reduce((obj, item) => {
        if (obj[new Date(item.createdAt).toLocaleDateString()]) {
            obj[new Date(item.createdAt).toLocaleDateString()].push(item);
            obj[new Date(item.createdAt).toLocaleDateString()] = obj[new Date(item.createdAt).toLocaleDateString()].sort((a, b) => new Date(a) - new Date(b))
            return obj;
        }

        obj[new Date(item.createdAt).toLocaleDateString()] = [
            { ...item }
        ];
        console.log(obj)
        return obj;
    }, {}), [messages])
  • Вопрос задан
  • 85 просмотров
Пригласить эксперта
Ответы на вопрос 1
sfi0zy
@sfi0zy Куратор тега JavaScript
Creative frontend developer
В документации moment.js говорится, что для парсинга строки (когда мы делаем moment(String)) эта самая строка должна соответствовать одному из форматов ISO 8601. В случае если строка стандарту не соответствует - работа во всех браузерах не гарантируется. Там есть специальное предупреждение по этому поводу и примеры строк, которые будут соответствовать. Вероятнее всего вы столкнулись именно с этим - ваши даты не парсятся в определенных браузерах.
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы