2009-03-19 25 views
13

मैं jQuery का उपयोग कर रहा हूं और मुझे जर्मनी के लिए स्थानीय समय प्राप्त करने की आवश्यकता है।मैं jQuery में स्थानीय समय कैसे प्राप्त कर सकता हूं?

किसी भी देश से मेरी वेबसाइट पर आने वाला कोई भी व्यक्ति यह जान सकता है कि जर्मनी में यह कितना समय है।

यदि समय 0:00 और 12:00 के बीच है तो मुझे एक चेतावनी पढ़ने की आवश्यकता है: "गुड मॉर्निंग"।

यदि समय 12:00 और 17:00 के बीच है तो मुझे एक चेतावनी पढ़ने की आवश्यकता है: "अच्छा दोपहर"।

मैं इसे jQuery में कैसे कार्यान्वित कर सकता हूं?

+2

क्लाइंट-साइड दिनांक/समय पर भरोसा न करें। यह सटीक गारंटी नहीं दी जा सकती है! –

+0

यह वास्तव में jQuery के साथ कुछ भी नहीं है। –

+3

इस तथ्य के बारे में क्या है कि ग्राहक हमेशा सही है? जहां तक ​​उपयोगकर्ता देख रहा है, उनका समय सही है (भले ही यह गलत हो)। किसी अन्य सर्वर से सही समय प्राप्त करने से उपयोगकर्ता को उनके दृष्टिकोण से गलत समय दिखाई देगा। – sean

उत्तर

24

(मध्य यूरोप का समय GMT + 1) आप स्थानीय समय क्षेत्र ग्राहक की भरपाई GMT समय जर्मनी समय क्षेत्र की भरपाई घंटे और फिर जोड़ने के लिए प्राप्त कर सकते हैं:

function getDate(offset){ 
    var now = new Date(); 
    var hour = 60*60*1000; 
    var min = 60*1000; 
    return new Date(now.getTime() + (now.getTimezoneOffset() * min) + (offset * hour)); 
} 

//... 

var dateCET = getDate(1); // Central European Time is GMT +1 

if (dateCET.getHours() < 12) { 
    alert ("Good morning."); 
} else { 
    alert ("Good afternoon."); 
} 

अद्यतन : मैं @ जोश से सहमत हूं, उपर्युक्त कोड पूरी तरह से ग्राहक निर्भर है। यह बेहतर करने के लिए कोशिश करते हैं:

$(document).ready(function(){ 
    var timezone = "Europe/Berlin"; 
    $.getJSON("http://json-time.appspot.com/time.json?tz="+timezone+"&callback=?", 
    function(data){ 
     if (data.hour < 12) { 
     alert ("Good morning in "+timezone); 
     } else { 
     alert ("Good afternoon in "+timezone); 
     } 
    }) 
}); 

अब हम JSONP का लाभ उठा रहे jsontime सर्वर से क्रॉस-डोमेन अनुरोध करने के लिए, इस सर्वर समय और समय क्षेत्र जानकारी क्वेरी करने के लिए एक पूरा JSON एपीआई उजागर करता है।

आप कोड here कोड के साथ खेल सकते हैं और आप JSONP API here का पता लगा सकते हैं।

Hurray !, कोई सर्वर-साइड कोड नहीं!

+3

अपने बबल को फटने के लिए खेद है, मेरे दोस्त, लेकिन यह पूरी तरह से अविश्वसनीय है। यह क्लाइंट सिस्टम घड़ी पर निर्भर है, जिसे पूरी तरह से अपमानजनक कुछ पर सेट किया जा सकता है। क्लाइंट घड़ी का उपयोग करना अतीत में मेरे लिए ऐप्स को पूरी तरह से गड़बड़ कर चुका है। छिपे हुए क्षेत्र में सर्वर-साइड दिनांक/समय इंजेक्ट करना होगा! –

+0

सहमत हैं, यह पूरी तरह क्लाइंट-निर्भर है, कुछ बेहतर पोस्ट करेगा ... – CMS

+8

आपको नहीं लगता कि यह कुछ ग्रीटिंग दिखाने के लिए उपयोग किया जाता है? यह मिसाइल लॉन्च कंट्रोल ऐप नहीं है, आपको पता है। – nickf

6

क्या आप जर्मनी में समय लेना चाहते हैं, या उपयोगकर्ता के टाइमज़ोन के लिए समय, जहां भी वे हैं? यदि उत्तरार्द्ध, Date() फ़ंक्शन स्थानीय टाइमज़ोन में काम करने के लिए डिफ़ॉल्ट है।

var d = new Date(); // defaults to the current time in the current timezone 
if (d.getHours() < 12) { 
    alert ("Good morning."); 
} else { 
    alert ("Good afternoon."); 
} 
4

आपको पृष्ठ पर किसी छिपे हुए क्षेत्र में अपने वेब सर्वर से दिनांक/समय इंजेक्ट करने की आवश्यकता है, और फिर आप उस jQuery तक पहुंच सकते हैं और प्राकृतिक Javascript Date ऑब्जेक्ट लोड कर सकते हैं। आप नहीं क्लाइंट-साइड दिनांक/समय पर भरोसा करना चाहते हैं क्योंकि यह आपके नियंत्रण से बाहर है और कुछ अपमानजनक पर सेट किया जा सकता है। मुझ पर विश्वास करो।

+0

मैंने अभी अपना जवाब संपादित किया है, चीयर्स – CMS

+1

ठीक है, ओपी में दिए गए मामले को देखते हुए, जिसका उपयोग यह एक साधारण "सुप्रभात/शाम" ग्रीटिंग के लिए किया जा रहा है, यह हास्यास्पद और ओवर- चोटी। – nickf

+5

निक: 100% आश्वासन कि सभी उपयोगकर्ताओं के पास एक समान अनुभव होगा हास्यास्पद नहीं है और न ही शीर्ष पर। मेरी दुनिया में, यह बिल्कुल अनिवार्य है। वास्तविकता के लिए –

संबंधित मुद्दे

 संबंधित मुद्दे