2009-12-03 11 views
7

मैं उदाहरण के लिए, एक वेब अनुप्रयोग है कि हर पृष्ठ पर दिनांक टिकटों प्रदर्शित होती है:तारीख/उपयोगकर्ता के समय क्षेत्र में समय प्रदर्शित - ग्राहक के पक्ष

दिसंबर 12, 2009 6:00 बजे

मैं गतिशील रूप से उपयोगकर्ता के टाइमज़ोन का पता लगाने और जावास्क्रिप्ट का उपयोग करके प्रदर्शन को बदलना चाहता हूं।

तो न्यू यॉर्क में उपयोगकर्ता देखना होगा:

दिसंबर 12, 2009 6:00 बजे

कैलिफोर्निया उपयोगकर्ता देखना होगा जबकि:

दिसंबर 12, 2009 3 : 00 बजे

कोई सुझाव?

+2

http://prideparrot.com/blog/archive/2011/9/how_to_display_dates_and_times_in_clients_timezone – VJAI

उत्तर

2

का तरीका यहां बताया अद्भुत "प्रगतिशील वृद्धि" के साथ यह कर सकता है यूटीसी, आदि)। फिर लोड पर स्थानीय समय के साथ इसे स्वैप करें (मूल टाइमज़ोन प्रदान किए जाने पर स्वचालित रूप से जावास्क्रिप्ट द्वारा संभाला जाता है)।

<div id="timestamp">December 12, 2009 6:00 pm GMT</div> 
<script type="text/javascript"> 
    var timestamp = document.getElementById('timestamp'), 
     t   = new Date(timestamp.innerHTML), 
     hours  = t.getHours(), 
     min  = t.getMinutes() + '', 
     pm  = false, 
     months = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December']; 

    if(hours > 11){ 
     hours = hours - 12; 
     pm = true; 
    } 

    if(hours == 0) hours = 12; 
    if(min.length == 1) min = '0' + min; 

    timestamp.innerHTML = months[t.getMonth()] + ' ' + t.getDate() + ', ' + t.getFullYear() + ' ' + hours + ':' + min + ' ' + (pm ? 'pm' : 'am'); 
</script> 
+0

मुझे संदेह है कि IE उस प्रारूप को सही तरीके से पार्स करेगा। – Bergi

+0

@ बर्गि - यह आईई 8 + –

+0

में काम करता है आईई 11 में काम नहीं करता है –

6

आप जीएमटी से स्थानीय ऑफसेट प्राप्त करने के लिए Date.getTimeZoneOffset() का उपयोग कर सकते हैं।

var date = new Date(); 
var offset = date.getTimezoneOffset(); 
वहाँ अपने एक SMOP से

Javascript Date ऑब्जेक्ट का उपयोग करके आप मानव पठनीय तिथि प्राप्त करने के लिए date.toDateString पर कॉल कर सकते हैं। यदि आपको सर्वर की तरफ की आवश्यकता है, तो जावास्क्रिप्ट को अपने सर्वर पर ऑफसेट को जीईटी या पोस्ट के साथ भेजें।

दिनांक स्वरूपण एक और कहानी है। जावास्क्रिप्ट बहुत अधिक प्रदान नहीं करता है। आप इसे अपने आप को हैक कर सकते हैं, लेकिन इस तरह कीड़े और पागलपन झूठ बोलता है। दिनांक स्वरूपण कुछ भी अच्छा जावास्क्रिप्ट पुस्तकालय प्रदान करना चाहिए। उदाहरण के लिए, JQuery में Datepicker.formatDate है।

आउटपुट तारीख जहां आप इसे प्रदर्शित करना चाहते हैं, लेकिन इसके समय क्षेत्र (मैं जीएमटी यहाँ का उपयोग निर्दिष्ट करना सुनिश्चित करें, लेकिन आप इस्तेमाल कर सकते हैं:

0

हम ExtJS पुस्तकालय है, जो दिनांक और समय जो आप एक बहुत मदद कर सकते हैं के बारे में कार्यक्षमताओं है प्रयोग कर रहे हैं। वास्तव में, मेरे मोज़िला फ़ायरफ़ॉक्स पर, यह ब्राउज़र समय क्षेत्र के अनुसार सभी तिथियों और समय प्रदर्शित करता है।

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