Я пытаюсь сделать некоторую обработку ошибок в существующей системе. Бэкэнд не может быть изменен, так как он работает с несколькими системами. Я работаю над переносом веб-интерфейса из ASP.NET в React. Я столкнулся с проблемой, когда я хочу проверить, содержит ли массив объектов дату, но дата, полученная из серверной части, выглядит как /Date(1379282400000)/.
Я провел несколько поискови не могу найти что-то похожее на это. Я попробовал этот код:
if (data.some(e => new Date(parseInt(e.Date.substr(6))).toDateString() === this.state.date.toDateString()) {
// Logic
}
e.Date
- это ключ, используемый в объекте для дат, а this.state.date
- это дата, выбранная пользователем. Если я просто сделаю:
if (data.some(e => e.Date === "/Date(137982400000)/") {
// Logic
}
в качестве теста, то он работает нормально. Итак, кажется, что преобразование даты в строку нарушает функцию, но не может понять, как это исправить.
Было бы неплохо исправить, что она проверяет дату как .getTime()
не будет работать, так как это может быть одна и та же дата, но в разное время.