से जेसन डेटटाइम को कैसे संभाला जाए, मुझे विश्वास है कि मुझे यहां कुछ स्पष्ट याद आ रही है। जब मैं ओडीटा सेवा से JSON प्रतिक्रिया का अनुरोध करता हूं तो मुझे एक्सएमएल का अनुरोध करते समय डेटटाइम गुणों के लिए एक अलग परिणाम मिलता है। मैं एक उदाहरण के रूप में NerdDinner OData फ़ीड का उपयोग करूंगा।डब्ल्यूसीएफ डाटा सर्विसेज (ओडाटा)
JSON:
http://www.nerddinner.com/Services/OData.svc/Dinners(1)?$format=json
"EventDate": "\/Date(1235764800000)\/"
एक्सएमएल:
मैं:
http://www.nerddinner.com/Services/OData.svc/Dinners(1)
<d:EventDate m:type="Edm.DateTime">2009-02-27T20:00:00</d:EventDate>
मैं इस परिणाम मिलता है जब मैं एक चेतावनी (नई तारीख (1235764800000)) करना जब मैं LINQPad के साथ एक ही क्वेरी चलाता हूं तो 8 पीएम का नतीजा भी मिलता है। JSON परिणाम में समय क्षेत्र गलत क्यों है? ऐसा लगता है कि प्रतिक्रिया जीएमटी में है। क्या मुझे इसे क्लाइंट (जावास्क्रिप्ट के माध्यम से) पर संभालना चाहिए या यह ऐसा कुछ है जिसे मैं सर्वर पर सेट कर सकता हूं?
मैं सर्वर पर jQuery और डब्ल्यूसीएफ डेटा सर्विसेज (और इकाई फ्रेमवर्क) पर jQuery का उपयोग कर रहा हूं।
अद्यतन:
मैं यूटीसी दिनांक स्वरूपण को संभालने के लिए क्लाइंट की तरफ Datejs उपयोग कर रहा हूँ। मैं सोच रहा हूं कि क्या इस समस्या के बारे में जाने का यह सही तरीका है।
function getDateString(jsonDate) {
if (jsonDate == undefined) {
return "";
}
var utcTime = parseInt(jsonDate.substr(6));
var date = new Date(utcTime);
var minutesOffset = date.getTimezoneOffset();
return date.addMinutes(minutesOffset).toString("M/d/yyyy h:mm tt");
}