@DimaPolishuk

Как парсить объект с датой или временем внутри?

есть массив объектов
var tasks = [{
        name: "Задача № 1",
        selectedProject: 'select project',
        dateBegin: new Date('07 24, 2016 19:58:49'),
        dateFinish: new Date('07 24, 2016 19:58:59')
      }, {
        name: "Задача № 2",
        selectedProject: 'timer',
        dateBegin: new Date('07 25, 2016 19:58:30'),
        dateFinish: new Date('07 25, 2016 19:59:15')
      }]


после добавления в этот массив новых объектов и сохранения в localStorage данным образом
localStorage.setItem("tasks", JSON.stringify(tasks));


Я хочу его спарсить обратно уже в измененный массив , после добавления туда новых объектов от пользователя , однако
var newTasks = JSON.parse(localStorage.getItem("tasks"));
возвращает только поля name и selectedProject

Я так понял проблема с датами, отсюда и вопрос, помогите как в данном случае надо парсить дату
  • Вопрос задан
  • 568 просмотров
Пригласить эксперта
Ответы на вопрос 1
bingo347
@bingo347 Куратор тега JavaScript
Crazy on performance...
localStorage.setItem("tasks", JSON.stringify(tasks, function(key, value) {
  if(value instanceof Date) {
    return '$ISODate(' + value.toISOString() + ')';
  }
  return value;
}));

var newTasks = JSON.parse(localStorage.getItem("tasks"), function(key, value) {
  if(typeof value !== 'string') {
    return value;
  }
  var m = value.match(/\$ISODate\((.*)\)/);
  if(!m) {
    return value;
  }
  return new Date(m[1]);
});
Ответ написан
Ваш ответ на вопрос

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

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