Предыстория Я целую неделю бьюсь головой, пытаясь просто сохранить и возобновить даты планирования в JS.Чтобы сохранить даты между сессиями, мне нужно использовать Stringify, чтобы разгрузить одну строку для сохранения в качестве переменной.Я программирую JS на специальном движке (Medialon Barco), который не позволяет включать или стандартный ввод / вывод.Таким образом, все должно работать в этом одном блоке кода с небольшими вещами, не являющимися стандартными или требующими обходных путей.
Проблема Эта команда строкового преобразования JSON сохраняет объекты даты в стандартном формате "2019-03-05T09: 20: 00.000Z". Однако это конкретная команда JSON для синтаксического анализа // new Date (), не может интерпретировать этот формат строки и создает ошибку «Неверная дата».Другие форматы все же работают, т. Е. Когда я вызываю новую дату (время эпохи) или новую дату (ГГГГ, ММ, ДД, чч, мм)
Квест Я пытаюсь изменитьразделы stringify / parse, чтобы обойти эту проблему, хотя я изо всех сил.Хотя у меня есть небольшой указатель на «JSON.parse» и бит регулярных выражений, попытка манипулировать обнаружением объекта Date и изменения способа его кодирования пока что бесполезна.
Получение структуры объекта Stringified
{
"daily": "",
"special": [
{
"startDTG": "2019-03-05T09:20:00.000Z", // <- Without modifying the default stringify it gives this
"endDTG": "2019-03-06T09:20:00.000Z",
"mode": "0"
}
],
"current": {},
"startup": [],
"shutdown": []
}
Я пытался выполнить следующие операции стригирования:
var currentEvents = JSON.stringify(this.Events, function(key,value) {
if (value instanceof Date){
return value.getTime();
}
return value;
});
Приведенное выше, однако, не обнаруживаетДата Объект.Если я использую (typeof value === 'object')
, он слишком активируется.
С другой стороны, вот нерабочий для этого двигателя (но работает везде!) Код
eventLoad = JSON.parse(eventSTR, function (key, value) {
var reISO = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*))(?:Z|(\+|-)([\d|:]*))?$/;
if (typeof value === 'string' && reISO.test(value)){
return new Date(value); //value.slice(0,-5));
}
return value;
});
Цель Мне нужно найтирешение для обхода ограничений этого движка, которое позволяет мне обнаруживать и преобразовывать Date в строку во время процесса JSON.stringify в альтернативную форму, которая также позволяет функции JSON.Parse обнаруживать и импортировать ее обратно как объект Date