У меня есть объект даты, созданный пользователем, с часовым поясом, заполненным браузером, например:
var date = new Date(2011, 05, 07, 04, 0, 0);
> Tue Jun 07 2011 04:00:00 GMT+1000 (E. Australia Standard Time)
Однако, когда я его строкую, часовой пояс переходит в прошлое
JSON.stringify(date);
> "2011-06-06T18:00:00.000Z"
Лучший способ получить строку ISO8601 при сохранении часового пояса браузера - использовать time.js и использовать moment.format()
, но, конечно, это не сработает, если я сериализую целую команду с помощью чего-то, что использует JSON.stringify
внутренне (в данном случае, AngularJS)
var command = { time: date, contents: 'foo' };
$http.post('/Notes/Add', command);
Для полноты моего домена требуется как местное время, так и смещение.