दिलचस्प पोस्ट
एसक्यूएल – डेराटाइम डाटा प्रकार के लिए एक varchar डेटा प्रकार का रूपांतरण एक आउट-ऑफ-रेंज वैल्यू के परिणामस्वरूप हुआ अतुल्यकालिक जावास्क्रिप्ट निष्पादन कैसे होता है? और जब रिटर्न स्टेटमेंट का उपयोग नहीं करते हैं? सीएसएस में वेरिएबल के रूप में मैं रंग कैसे परिभाषित करूं? मैं जावास्क्रिप्ट में दो तिथियों के बीच अंतर कैसे प्राप्त करूं? Console.log में गलत मान आईओएस सिम्युलेटर आवेदन को स्थापित करने में विफल रहा मैं JSF FacesMessage को HTML कोड कैसे जोड़ूं? जावा तैयार किए गए स्थान और परिणामस्वरूप को बंद करने के लिए कहां? गैर-स्थिर क्षेत्र, विधि या संपत्ति के लिए एक ऑब्जेक्ट संदर्भ की आवश्यकता है? बड़े फ़ॉन्ट-भयानक आइकन के साथ पाठ को कैसे लंबवत करें? Enum और int / String के बीच सुविधाजनक मानचित्र उत्पाद तालिका के लिए एक कृत्रिम प्राथमिक कुंजी और एक प्राकृतिक कुंजी के बीच निर्णय करना सरणी = मान की तुलना में सरणी को कभी-कभार तेज़ क्यों है? शब्दों की सूची में रिक्त स्थान के बिना पाठ कैसे विभाजित है? एक जावा प्रक्रिया के InputStream के लिए लेखन

ग्राहक का समय क्षेत्र कैसे प्राप्त करें?

मैं Zend_Framework का उपयोग करते हुए एक आवेदन को मिटा रहा हूँ (इसलिए समाधान उस पर भरोसा कर सकते हैं)।

ग्राहक का समय क्षेत्र कैसे प्राप्त करें?

उदाहरण के लिए, यदि मॉस्को, रूस में कोई है, तो मुझे 3 * 60 * 60 (क्योंकि यूटीसी + 3 है) प्राप्त करना है। अगर वह ब्रिटेन में है, तो मुझे शून्य चाहिए अगर वह UTC-3: 30 (कनाडा?) का उपयोग करता है, तो मुझे -3.5 * 60 * 60 चाहिए

(यह प्रारूप के बारे में कोई प्रश्न नहीं है – मैं सेंट पीटर्सबर्ग, रूस के लिए 'यूरोप / मॉस्को' या 'यूटीसी -3' प्राप्त करने के लिए ठीक हूं, यह टाइमज़ोन क्लाइंट का उपयोग करने के बजाय होता है। सेकंड में डेल्टा पसंदीदा है)

एकमात्र समाधान जो दिमाग में आता है, जावास्क्रिप्ट को मेरे लिए स्थानीय समय लेता है और रीडायरेक्ट करता है।

Solutions Collecting From Web of "ग्राहक का समय क्षेत्र कैसे प्राप्त करें?"

जावास्क्रिप्ट के माध्यम से एक कुकी सेट करके टाइमज़ोन का पता लगाने के लिए इस आलेख को देखें, जिसमें क्लाइंट का समयक्षेत्र होगा यह बल्कि लेंगटी है, लेकिन यह इसलिए है क्योंकि यह काफी स्पष्ट है। मैंने अपने स्वयं के ऐप में इन पंक्तियों के साथ एक समाधान कार्यान्वित किया है और यह बहुत अच्छी तरह से काम करता है।

आप सर्वर पर अजाक्स के जरिए टाइमज़ोन भी भेज सकते हैं और इसे तब कर सकते हैं जो आपको इसके साथ करना है। या, यदि आप इसके साथ किसी भी सर्वर की गणना नहीं कर रहे हैं, तो बस उस समय क्षेत्र क्लाइंट पक्ष को लागू करें जहां की जरूरत है। सचमुच आपके उपयोगक पर निर्भर करता है

इसके अलावा, मेरा सुझाव है कि आप आगंतुक को अपना समयक्षेत्र निर्धारित करें और कुकी या सत्र में उसे स्टोर करने दें।

मैंने jQuery और PHP का इस्तेमाल करते हुए एक फ़ंक्शन लिखी यह परीक्षण किया जाता है, और काम करता है!

PHP पृष्ठ पर, जहां आप समय-क्षेत्र को एक चर के रूप में रखना चाहते हैं, उस पृष्ठ के शीर्ष के निकट कोड का यह स्निपेट है:

<?php session_start(); $timezone = $_SESSION['time']; ?> 

यह सत्र वेरिएबल "समय" पढ़ागा, जिसे हम अब बनाने के बारे में हैं

एक ही पृष्ठ पर, आपको सबसे पहले jQuery में शामिल करने की आवश्यकता है:

 <script type="text/javascript" src="http://code.jquery.com/jquery-latest.min.js"></script> 

इसके अलावा, jQuery के नीचे, यह पेस्ट करें:

 <script type="text/javascript"> $(document).ready(function() { if("<?php echo $timezone; ?>".length==0){ var visitortime = new Date(); var visitortimezone = "GMT " + -visitortime.getTimezoneOffset()/60; $.ajax({ type: "GET", url: "http://domain.com/timezone.php", data: 'time='+ visitortimezone, success: function(){ location.reload(); } }); } }); </script> 

हो सकता है या आपने गौर किया हो, लेकिन आपको अपने वास्तविक डोमेन में यूआरएल बदलना होगा।

एक अंतिम बात। आप शायद सोच रहे हैं कि हेक टाइमज़ोन.php क्या है खैर, यह बस यह है: ( टाइमज़ोन.php नामक एक नई फ़ाइल बनाएं और इसके ऊपर यूआरएल के साथ इंगित करें)

 <?php session_start(); $_SESSION['time'] = $_GET['time']; ?> 

यदि यह सही ढंग से काम करता है, तो वह पहले पृष्ठ को लोड करेगा, जावास्क्रिप्ट निष्पादित करेगा, और पृष्ठ पुनः लोड करेगा। फिर आप $ टाइमज़न वेरिएबल को पढ़ सकेंगे और इसे आपकी खुशी में उपयोग कर सकेंगे! यह वर्तमान यूटीसी / जीएमटी समयक्षेत्र ऑफसेट (जीएमटी -7) या आप जिस समय के क्षेत्र में हैं

यह बहुत कम ओवरहेड के साथ एक कुकी समाधान है:

  echo <<<EOE <script type="text/javascript"> if (navigator.cookieEnabled) document.cookie = "tzo="+ (- new Date().getTimezoneOffset()); </script> EOE; if (!isset($_COOKIE['tzo'])) { echo <<<EOE <script type="text/javascript"> if (navigator.cookieEnabled) document.reload(); else alert("Cookies must be enabled!"); </script> EOE; die(); } $ts = new DateTime('now', new DateTimeZone('GMT')); $ts->add(DateInterval::createFromDateString($_COOKIE['tzo'].' minutes')); 

मुझे लगता है कि क्लाइंट द्वारा भेजे गए Accept-Language हैडर के आधार पर आपका सर्वोत्तम शर्त अनुमान लगा रहा है।