Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / WTF: Сериализация Date в JSON что это за магия с месяцем и годом? / 7 сообщений из 7, страница 1 из 1
19.01.2014, 13:10
    #38530949
OZKA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WTF: Сериализация Date в JSON что это за магия с месяцем и годом?
Код: javascript
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
-
function Person() {
                this.id = 1;
                this.name = "OZKA";
                this.birthDate = new Date(1981, 01, 09);
                this.monthRevenue = 1000.750;
                this.developer = true;
            }

        
        var ozka = new Person();
        var jsonOzka = JSON.stringify(ozka);//{"id":1,"name":"OZKA","birthDate":"1981-02-08T20:00:00.000Z","monthRevenue":1000.75,"developer":true}
        
        var ozkaFromJson = JSON.parse(jsonOzka);
        
        alert(ozkaFromJson.id + ", " + ozkaFromJson.name + ", " + ozkaFromJson.birthDate + ", " + ozkaFromJson.monthRevenue + ", " + ozkaFromJson.developer);//


Естественно обратно он создается с неправильной датой, т.е. ozkaFromJson.birthDate == 1981-02-08T20:00:00.000Z, кстати сразу вопрос, это нормальная дата или у нас там уже вовсе и не дата, а строка!?! Какой интересный язык JavaScript :-)

p.s. Браузер Chrome 31, Win 7
...
Рейтинг: 0 / 0
19.01.2014, 13:33
    #38530962
Малыхин Сергей
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WTF: Сериализация Date в JSON что это за магия с месяцем и годом?
Date в JS это сложный объект
...
Рейтинг: 0 / 0
19.01.2014, 13:35
    #38530964
OZKA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WTF: Сериализация Date в JSON что это за магия с месяцем и годом?
Малыхин Сергей, а решение-то какое? Что-то я в Google поискал и как-то сходу именно мой случай не нашел, хотя на SO почитал по-диагонали какие-то другие проблемы с Date сеарилизацией...
...
Рейтинг: 0 / 0
19.01.2014, 13:39
    #38530965
Яростный Меч
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WTF: Сериализация Date в JSON что это за магия с месяцем и годом?
OZKAа решение-то какое? http://learn.javascript.ru/json - читать всё.
...
Рейтинг: 0 / 0
19.01.2014, 14:49
    #38531013
OZKA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WTF: Сериализация Date в JSON что это за магия с месяцем и годом?
Яростный Меч, спасибо за ссылку, прочитал статью, полезная! Но,

авторЕсли объект new Date создавался на компьютере с локальной временной зоной GMT+4, то сериализованный UTC-вариант — на 4 часа меньше.


Ок, а с месяцем-то что происходит? С датой понятно почему на день раньше, а почему месяцу прибавляется единица?
...
Рейтинг: 0 / 0
19.01.2014, 15:37
    #38531039
bazile
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WTF: Сериализация Date в JSON что это за магия с месяцем и годом?
OZKA, по историческим причинам методы Date работают с месяцами от 0 до 11. Вызов new Date(1981, 01, 09) соответствует 9 февраля, а не января как ты думал. Так что JSON.stringify и JSON.parse работают без ошибок.
...
Рейтинг: 0 / 0
19.01.2014, 15:39
    #38531042
OZKA
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
WTF: Сериализация Date в JSON что это за магия с месяцем и годом?
bazile, вау, круто, спасибо!
...
Рейтинг: 0 / 0
Форумы / HTML, JavaScript, VBScript, CSS [игнор отключен] [закрыт для гостей] / WTF: Сериализация Date в JSON что это за магия с месяцем и годом? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]