Код: Выделить всё
import dayjs from "dayjs";
import utc from "dayjs/plugin/utc";
import timezone from "dayjs/plugin/timezone";
dayjs.extend(utc);
dayjs.extend(timezone);
function dateFormat(datetimeValue) {
let date = dayjs(datetimeValue);
if (!date.isValid() && typeof datetimeValue === "string") {
datetimeValue = datetimeValue.replace(" ", "T"); // Replace space with 'T'
date = dayjs(datetimeValue);
}
return date.format("YYYY-MM-DD HH:mm:ss.SSSZ");
}
Мои вопросы:
- Почему Day.js не может проанализировать эту строку даты в некоторых средах?
- Достаточно ли заменить пробел на букву T, чтобы решить эту проблему?
- Следует ли нормализовать смещение часового пояса (например, с +07:00 до +07:00)? Если да, то как я могу это эффективно реализовать?
Как лучше всего обрабатывать недопустимые строки даты в Day.js, особенно при работе с данными API?
Неверная дата
Чтобы это исправить, я попытался заменить пробел между датой и временем на
Код: Выделить всё
datetimeValue = datetimeValue.replace(" ", "T");
Я ожидал, что Day.js правильно проанализирует строки даты и позволит мне отформатировать их в читаемые форматы, например " 1 ноября 2023 г.».
T:ожидаемый результат
Подробнее здесь: https://stackoverflow.com/questions/793 ... ne-offsets