2015-01-01 24 views
5

Bir dizi alan döndüren bir .net asmx web hizmeti çağırıyorum. Bir tarihte alanlardan biri. Tarih, "effective_date":"\/Date(978411600000)\/".NET WebService ISO-8601 biçiminde JSON tarihi

Bu SO soruya göre: How do I format a Microsoft JSON date? iade edilen tarihin ISO 8601 biçiminde olması daha iyi olurdu, bu şekilde JavaScript bir tarih olarak yorumlanabilir.

Şu anda aşağıdaki javascript'i kullanıyorum: new Date(d.effective_date) ve ben Invalid Date iletisini alıyorum. Bağlı SO sorusuna göre, web hizmetini \/Date(978411600000)\/ biçiminde değil, ISO biçiminde geçirmesi için bunu yapabilmem gerekir.

Sorum şu: Web servisini tarihini ISO 8601 biçiminde döndürmek için nasıl alabilirim?

Not: Ben bu (bağlantılı sorudan Yanıt başına) kullanabilir farkındayım: ancak bir yorum olduğunu Incoming date values should be formatted in ISO-8601 belirtilen, var date = new Date(parseInt(d.effective_date.substr(6)));, bu yüzden nasıl Gelenler'i almak için merak ediyorum web servisinden bu ISO formatında olması gereken tarih.

+0

nasıl web hizmetidir? ne kullanıyorsun, asp.net, mvc, vb? 'Json.Net' kullandıysanız,' DateFormatHandling.IsoDateFormat' –

+0

kullanabilirsiniz asp.net kullanıyorum; Etiketleri yansıtacak şekilde güncelledim. – kralco626

+0

@ kralco626 çözümü buldunuz mu? Aynı sorunu yaşıyorum ve asmx web servisinin ISO-8601 formatındaki tarihi iade etmesini istiyorum! Uyumlu hale getirmek için javascript kodu ekleyebileceğimi biliyorum, ancak web servisinin tüm tarihleri ​​ISO-8601 biçiminde döndürmesini tercih ederim. – learner

cevap

0

Sen kullanabilirsiniz:

var date = new Date(d.effective_date); 
date.toISOString(); // ISO-8601 formatted string 

JSFiddle: http://jsfiddle.net/nanndoj/gjtkvrsy/

+0

kullanıyorum. Web servisinden tarihi ISO formatında javascript'e aktarmak istiyorum. Şu anda, eğer yeni Date (d.effective_date) diyorum, javascript bana bir Geçersiz Tarih mesajı veriyor, çünkü web servisinden gönderilen tarih doğru biçimlendirilmemiş. – kralco626

+0

Geçersiz tarih alıyorsunuz, çünkü sunucunuz "Tarih (") dizesiyle öntanımlı verileri döndürüyor. Bunu yeni bir Date() argümanı olarak koymak yerine bunu veya eval ("new" + d.effective_date) 'i kaldırabilirsiniz. – nanndoj

+0

Bu http://jsfiddle.net/nanndoj/gjtkvrsy/1/ – nanndoj

İlgili konular