Просто чтобы добавить еще один подход, «подход тиков», который принимает WCF , склонен к проблемам с часовыми поясами, если вы не слишком осторожны, как описано здесь и другими мест. Поэтому сейчас я использую формат ISO 8601, который должным образом поддерживает и .NET, и JavaScript, включая смещения часовых поясов. Ниже приведены детали:
В WCF / .NET:
Где CreationDate - это System.DateTime; ToString ("o") использует .NET спецификатор формата туда и обратно , который генерирует строку даты в соответствии с ISO 8601
new MyInfo {
CreationDate = r.CreationDate.ToString("o"),
};
В JavaScript
Сразу после получения JSON я исправляю даты, которые будут объектами JavaSript Date, используя конструктор Date, который принимает строку даты ISO 8601 ...
$.getJSON(
"MyRestService.svc/myinfo",
function (data) {
$.each(data.myinfos, function (r) {
this.CreatedOn = new Date(this.CreationDate);
});
// Now each myinfo object in the myinfos collection has a CreatedOn field that is a real JavaScript date (with timezone intact).
alert(data.myinfos[0].CreationDate.toLocaleString());
}
)
Если у вас есть дата JavaScript, вы можете использовать все удобные и надежные методы Date, такие как toDateString , toLocaleString и т. Д.