Bizim başvurumuz heavilly, javascript (jQuery) belgesine dayanır. Yani bir çok 'uygulama/json' talebi var.Bir ASP.NET MVC - Javascript uygulamasında tarihlerle baş etmenin en iyi yolu
Bir süredir tarihlerle uğraşıyoruz, ancak çabalarımıza rağmen, , ASP.NET MVC uygulamasında bunun nasıl ele alınacağını belirleyemedik. İşte
ne istediğimizi: (tercihen DateTimeKind.Utc birlikte) sunucu tarafında
- serialize/serisi kaldırılmaya DateTime nesneler.
- İstemci tarafında Date nesnesiyle çalışın. UTC ile onunla çalışın. Tarihleri bir şekilde biçimlendir. İşte
sorunlar şunlardır:
Tarih istemci nesne son kullanıcının saat dilimiyle zaman.
JSON.stringify(new Date())
otomatik olarak bir geçiş yapar.JSON Stringify changes time of date because of UTC
Bu soru yardımcı biraz, ama biz sunucuya göndermeden önce tarih kaydırmaya hatırlamak gerekiyor.
new Date('2012-10-19T10:23:47.778Z')
'u yaptıktan sonra bir vardiyaya ihtiyacımız olduğunu hatırlamamız gerekiyor. JSON'un tarihlerden haberdar olmadığını biliyoruz, ancak tarihleri ayrıştıracak JSON.parse analoguna sahip olmak güzel olurdu.Biz Newton Json.net/serisi kaldırılmaya tarihleri seri hale getirmek kullanmak, ancak DateTimeKind.Unspecified bunu yapar
Soru:
çalışmak için zarif bir yolu var mı hem sunucuda hem de istemcisindeki tarihler? Tüm uygulamada kesişen bir şey olarak buna ihtiyacımız var.
UPD:
daha açıkça koymak zorunda kaldı. Uygulamalarımızda, yalnızca tarihlerle çalıştığımızdan, müşteri saat dilimlerini hesaba katmamız gerekmez. Sunucu 2012-10-19T10:23:47.778Z'
dönerse
Yani, biz Date nesnesini gerekir:
Fri Oct 19 2012 10:23:47 GMT+0300 (Kaliningrad Standard Time)
Değil
Fri Oct 19 2012 13:23:47 GMT+0300 (Kaliningrad Standard Time)
JSON.stringify', tarihi * ile * UTC arasında çevirmiyor mu? – James
Bu sorunları kendim deneyimledikten sonra, bir adam bana aşağıdakileri sordu: "Nesnenin kendisinin gerçekten istemciye mi, yoksa sadece doğru gösterime mi ihtiyacı var?". Benim durumumda haklıydı ve doğru Kültür tarafından biçimlendirilen doğru tarihin dize gösterimini döndürmeye karar verdi. –