2012-08-27 12 views
6

निर्धारित करने का सबसे सटीक तरीका क्या है मैंने सत्यापित किया है कि dateutils.tz.tzlocal() heroku पर काम नहीं करता है और यहां तक ​​कि अगर ऐसा होता है, तो क्या यह केवल tz प्राप्त नहीं करेगा कंप्यूटर के ओएस, उपयोगकर्ताओं की जरूरी नहीं है?पायथन का उपयोग करते हुए, उपयोगकर्ताओं को वर्तमान टाइमज़ोन

उपयोगकर्ताओं के टाइमज़ोन को संग्रहीत करने का छोटा, क्या यह निर्धारित करने का कोई तरीका है कि कोई अनुरोध कहां से आ रहा है? (मैं कुप्पी उपयोग कर रहा हूँ)

ट्विटर आपके समय क्षेत्र को समायोजित करने के लिए एक सेटिंग है, लेकिन मैं सोच रहा हूँ कि वे किस तरह का निर्धारण क्या डिफ़ॉल्ट होना चाहिए और कैसे है कि जब कोई उपयोगकर्ता में लॉग इन नहीं कर रहा है काम करेगा।

+0

वातावरण आप किस तरह के बारे में बात कर रहे हैं के लिए एक निरंतर किया जा रहा से इस मूल्य रोकता है? क्या होगा अगर उपयोगकर्ता दुनिया भर से ssh? –

+1

क्या यह जेएस के साथ बेहतर होगा क्योंकि क्लाइंट साइड चलाता है? –

+0

उपयोगकर्ता के टाइमज़ोन वरीयता को स्टोर करने के साथ मैंने किए गए सभी वेब-ऐप्स। यह एक छोटा नमूना है, लेकिन फिर भी एक नमूना। इसकी अपेक्षाकृत सुरुचिपूर्ण है, लेकिन यह सरल है और यह अजीब ग्राहकों/ओएस के कारण न्यूनतम विफलताओं के साथ अच्छी तरह से काम करता है :) –

उत्तर

1

यदि आप आसानी से उपयोगकर्ताओं के आईपी पते को फ्लास्क के भीतर से प्राप्त कर सकते हैं (शायद request ऑब्जेक्ट से?), तो आप भौगोलिक स्थान का उपयोग कर सकते हैं। जैसे http://www.hostip.info/ के माध्यम से।

शायद यह 100% मूर्खतापूर्ण नहीं है, हालांकि। उदाहरण के लिए यदि कोई वीपीएन या किसी अन्य प्रकार की प्रॉक्सी का उपयोग करता है तो आपको उसका "वास्तविक" आईपी पता नहीं दिखाई देगा।

+2

मुझे पता नहीं है कि यह काम करेगा लेकिन जेएस समाधान से काफी जटिल है .. –

+0

हाँ, वास्तव में। मैं जेएस से परिचित नहीं हूँ। हर रोज कुछ नया सीखता है। :-) –

+0

यदि आप किसी स्थान से टाइमज़ोन प्राप्त करना चाहते हैं; [आप कर सकते हैं] (http://stackoverflow.com/q/16505501/4279)। – jfs

9

आप जावास्क्रिप्ट का उपयोग कर सकते हैं और कुकी के समय क्षेत्र को कुकी में सेट कर सकते हैं। आप एक AJAX अनुरोध का भी उपयोग कर सकते हैं और फिर ऑफ़सेट को सर्वर पर भेज सकते हैं और क्लाइंट के सत्र में सहेज सकते हैं।

var offset = new Date().getTimezoneOffset(); 

विवरण

समय-क्षेत्र की भरपाई अंतर है, मिनट में, UTC और स्थानीय समय के बीच है। ध्यान दें कि> इसका मतलब है कि ऑफसेट सकारात्मक है यदि स्थानीय टाइमज़ोन यूटीसी के पीछे है और नकारात्मक है तो यह नकारात्मक है। उदाहरण के लिए, यदि आपका समय क्षेत्र यूटीसी +10 (ऑस्ट्रेलियाई पूर्वी मानक समय) है, -600 वापस कर दिया जाएगा। डेलाइट बचत समय के किसी दिए गए स्थान

Mozilla Javascript Reference: getTimezoneOffset

+0

पर इसका सामान्य संकेत नहीं है जिसे सामान्यतः यूटीसी ऑफसेट (स्थानीय समय = utc + ऑफ़सेट) कहा जाता है। – jfs