Проверьте часовой пояс на сервере, на котором работает размещенный сайт.Это не новозеландское стандартное время.Разница:
1526868961581 - 1526930161581 = 61200000 миллисекунд (17 часов)
А поскольку стандартное время Новой Зеландии равно +12, оно выглядит как часовой пояссервер -5, который является восточным временем.Похоже, сервер расположен в США (или Канаде).
Обратите внимание, что когда JavaScriptSerializer
сериализует даты, он сначала преобразует их в UTC.Затем он вычисляет миллисекунды эпохи Unix и помещает результат в /Date()/
.Поэтому не используйте UtcNow
и сериализуйте свои даты напрямую, как js.Serialize(DateTime.Now)
.Когда вы используете значение миллисекунды в конструкторе new Date()
в JavaScript, оно принимает его в формате UTC и преобразует его в местное время, используя часовой пояс браузера.
Ниже приведено описание из MSDN :
Microsoft ASP.NET AJAX [...] кодирует значения .NET DateTime в виде строки JSON, где содержимое строки равно / Date (ticks) / и где отмечены меткипредставляет миллисекунды с начала эпохи (UTC).Поэтому 29 ноября 1989 года, 4:55:30 утра, в UTC кодируется как "/Date(628318530718)/".
JavaScriptSerializer
имеет некоторые проблемы, и сериализация /Date()/
был создан Microsoft и не является стандартом.Вместо этого рекомендуется использовать библиотеку, которая поддерживает стандарт ISO (например, Newtonsoft.Json
).