क्या सर्वर पर अपना टाइमज़ोन ऑफसेट करने का कोई तरीका है, http पर अनुरोध में कुछ पढ़कर, क्लाइंट को सब कुछ भेजने और इसे सौदा करने के बजाय?क्या आप अनुरोध चर से टाइमज़ोन निर्धारित कर सकते हैं?
उत्तर
यह अधिक जटिल है लेकिन मुझे पहले इस परिदृश्य का सहारा लेना पड़ा क्योंकि मशीन और उपयोगकर्ता प्रोफ़ाइल सेटिंग्स कभी-कभी आपके आगंतुक की प्राथमिकताओं से मेल नहीं खाती हैं। उदाहरण के लिए, एक यूके विज़िटर आपकी साइट को अस्थायी रूप से ऑस्ट्रेलियाई सर्वर से एक्सेस कर रहा है।
एक जियोलोकेशन सेवा का उपयोग करें (उदाहरण, MaxMind.com) के रूप में @balabaster ने सुझाव दिया, उनके IP मिलान क्षेत्र पाने के लिए (Global.Session_Start सबसे अच्छा है)। यह स्थानीय आईएसपी के लिए एक अच्छा मैच है, लेकिन एओएल के लिए इतना अच्छा नहीं है। सत्र कुकी में ऑफसेट स्टोर करें।
या JavaScript का उपयोग समय क्षेत्र एक रूप प्रस्तुत करने के भाग के रूप में प्राप्त करने के लिए ऑफसेट/अनुप्रेषित जब उपयोगकर्ता साइट में प्रवेश करती है। यह ब्राउज़र का वर्तमान ऑफसेट है, लेकिन आगंतुक के पसंदीदा क्षेत्र की आवश्यकता नहीं है। इस मान का उपयोग डिफ़ॉल्ट के रूप में करें; एक और सत्र कुकी में स्टोर करें।
<script type="text/javascript" language="JavaScript"> var offset = new Date(); document.write('<input type="hidden" id="clientTzOffset" name="clientTzOffset" value="' + offset.getTimezoneOffset() + '"/>'); </script>
आगंतुक (अनाम उपयोगकर्ताओं के लिए) अपनी खाता प्रोफ़ाइल में एक लगातार कुकी के माध्यम से क्षेत्र और एक क्षेत्र अद्यतन करने के लिए (यदि प्रमाणीकृत) की अनुमति दें।
ओवरराइड सत्र मूल्यों से लगातार मूल्य # 3। आप लॉगिन करने से पहले समय प्रदर्शित करने के लिए प्रमाणीकृत उपयोगकर्ताओं के लिए एक ही लगातार कुकी स्टोर भी कर सकते हैं।
पेज अनलोड से पहले की किसी भी घटना में ... Request.ServerVariables। यदि आप अपने भौतिक टाइमज़ोन चाहते हैं तो आप अपने आईपी पते की जांच करें और भू-स्थान रूपांतरण टूल में आईपी का उपयोग करें।
मुझे यकीन है कि वहाँ एक और तरीका है आप यह कर सकते है अगर, इसलिए यदि आप समय क्षेत्र अपने कंप्यूटर के लिए कॉन्फ़िगर किया गया है की आवश्यकता होती है, यह एक जावास्क्रिप्ट के लिए पृष्ठ लोड के लिए इंतजार करना होगा नहीं कर रहा हूँ ...
चेक detect_timezone.js - एक बहुत अच्छा उपयोगकर्ता के समय क्षेत्र
मैं विशेष रूप से सर्वर साइड समाधान की तलाश में हूं, ताकि मैं वास्तव में टाइमज़ोन के आधार पर अपने कैशिंग कोड में चीजें कर सकूं। यह आखिरकार मैंने जो भी इस्तेमाल किया, उसका एक समान समाधान है, और बैक एंड कोड को उतना ही परवाह नहीं है, लेकिन क्लाइंट अनुरोध के हिस्से के रूप में ऑफसेट प्राप्त करना अच्छा लगेगा। – DevelopingChris
हां, आप भरोसेमंद नहीं कर सकते हैं। – Bozho
यह विश्वसनीय नहीं है। हो सकता है कि उपयोगकर्ता ने अपने सिस्टम में गलत समय निर्धारित किया हो – shashwat
का निर्धारण हम सर्वर साइड में करने के बजाय ग्राहक से मूल्य भेज नीचे कोड का उपयोग कर समय क्षेत्र प्राप्त कर सकते हैं काम करता है।
private TimeZoneInfo GetRequestTimeZone()
{
TimeZoneInfo timeZoneInfo = null;
DateTimeOffset localDateOffset;
try
{
localDateOffset = new DateTimeOffset(Request.RequestContext.HttpContext.Timestamp, Request.RequestContext.HttpContext.Timestamp - Request.RequestContext.HttpContext.Timestamp.ToUniversalTime());
timeZoneInfo = (from x in TimeZoneInfo.GetSystemTimeZones()
where x.BaseUtcOffset == localDateOffset.Offset
select x).FirstOrDefault();
}
catch (Exception)
{
}
return timeZoneInfo;
}
धन्यवाद ...
क्या आपने कोशिश की है यह एक सर्वर पर यूटीसी पर सेट है और एक क्लाइंट आपके वास्तविक टाइमज़ोन पर सेट है। – DevelopingChris
आपने मुझे अपने समय के परीक्षण के कुछ मिनट बर्बाद करने के लिए काफी चिंतित किया, लेकिन खेद है। गो फ़िश। दिलचस्प अवधारणा। यदि ब्राउज़र डिफ़ॉल्ट रूप से अनुरोध हेडर के साथ अपना स्थानीय समय भेज देंगे। – johnw182
यह सर्वर के टाइमज़ोन को निर्धारित करने के लिए केवल एक चौराहे का तरीका प्रतीत होता है, जिसे अधिक आसानी से पूरा किया जा सकता है। –
वहाँ आपके समय क्षेत्र ऑफसेट, http से अधिक अनुरोध में कुछ पढ़ने के बजाय ग्राहक के लिए सब कुछ भेजने द्वारा, सर्वर साइड पर करने के लिए एक रास्ता है और इसे इससे निपटने देना?
यहाँ समाधान मैं के साथ आया है, जब मैं WCF वेब सेवाओं के साथ एक ही मुद्दा था:
How to get a WCF Web Service to return DateTimes in user's local timezone
असल में, मैं अपने जावास्क्रिप्ट/कोणीय उपयोगकर्ता के समय क्षेत्र निर्धारित करने के लिए कोड तो मिलता है, इस मूल्य को मेरी डब्ल्यूसीएफ वेब सेवाओं में से एक को पास करें।
सूचना कैसे मैं एक वेब सेवा है getListOfRecords
जो एक पैरामीटर, समय क्षेत्र ऑफसेट मूल्य लेता है कहा जाता है।
$scope.loadSomeDatabaseRecords = function() {
var d = new Date()
var timezoneOffset = d.getTimezoneOffset();
return $http({
url: 'http://localhost:15021/Service1.svc/getListOfRecords/' + timezoneOffset,
method: 'GET',
async: true,
cache: false,
headers: { 'Accept': 'application/json', 'Pragma': 'no-cache' }
}).success(function (data) {
$scope.listScheduleLog = data.Results;
});
}
वहाँ से, मेरी सी # कोड डेटाबेस रिकॉर्ड में पढ़ता है, लागू होने वाला समय क्षेत्र यूटीसी DateTime
मूल्यों के लिए ऑफसेट, और ग्राहक को देता है।
मैं इस पर एक और झुर्रियों में भाग गया, जो इसे आगे जटिल करता है। यह डेलाइट सेविंग्स के लिए मेरे टाइमज़ोन में अगले दिसंबर के लिए वापसी की तारीखों को कैसे प्रबंधित करता है। अगर यह ऑफसेट का उपयोग करता है, तो कई टाइमज़ोन मिलते हैं, और उनमें से अधिकतर डेलाइट सेविंग्स का उपयोग नहीं करते हैं। – DevelopingChris
- 1. क्या आप जावास्क्रिप्ट से HTTP पैच अनुरोध कर सकते हैं?
- 2. आप टाइमज़ोन मुद्दों से कैसे निपटते हैं?
- 3. सी में आप क्या नहीं कर सकते हैं जिसे आप उद्देश्य-सी में कर सकते हैं?
- 4. क्या आप जावास्क्रिप्ट से सी # फ़ंक्शन कॉल कर सकते हैं?
- 5. क्या आप एक चर-ए-क्लॉज के अंदर एक चर स्टोर कर सकते हैं?
- 6. प्रमाणीकरण - क्या आप कुकीज़/सत्र का उपयोग कर सकते हैं?
- 7. क्या कर सकते हैं कि sed क्या कर सकते हैं?
- 8. क्या आप निर्धारित कर सकते हैं कि कौन सा संपर्क w/registerContentObserver बदलता है?
- 9. यदि आप संदर्भ द्वारा अपवाद पकड़ते हैं, तो क्या आप इसे संशोधित कर सकते हैं और पुनर्स्थापित कर सकते हैं?
- 10. क्या आप .NET से एक एसएसआईएस कार्य चला सकते हैं?
- 11. आप कैसे निर्धारित कर सकते हैं कि पर्ल मॉड्यूल क्या है "अनिर्धारित प्रतीक: Perl_Tstack_sp_ptr?"
- 12. क्या आप सफारी एक्सटेंशन में http अनुरोध शीर्षलेख संशोधित कर सकते हैं?
- 13. क्या थ्रेड सुरक्षित रूप से वीसीएल घटनाओं द्वारा निर्धारित चर पढ़ सकते हैं?
- 14. आप कैसे बता सकते हैं कि कोई एएसपी.NET अनुरोध रिमोट या लोकहोस्ट से है या नहीं?
- 15. क्या उपयोगकर्ता सत्र चर बदल सकते हैं?
- 16. Symfony 2 - स्पष्ट नहीं कैश कर सकते हैं - आप एक निष्क्रिय गुंजाइश ("अनुरोध") की एक सेवा ("अनुरोध") नहीं बना सकते
- 17. ग्रहण: क्या आप सहेजने पर कोड प्रारूपित कर सकते हैं?
- 18. क्या आप एएसपी और एएसपी.नेट मिश्रण कर सकते हैं?
- 19. क्या आप कई टेम्पलेट्स में डेटा साझा कर सकते हैं?
- 20. क्या आप jquery AJAX कैश साफ़ कर सकते हैं?
- 21. क्या आप setRootViewController को एनिमेट कर सकते हैं?
- 22. क्या आप स्ट्रिंग चर का उपयोग कर फ्लाई पर जावास्क्रिप्ट regexes बना सकते हैं?
- 23. क्या आप Silverlight में HtmlDecode और HtmlEncode कर सकते हैं?
- 24. क्या आप एपीके में संसाधन साझा कर सकते हैं?
- 25. क्या आप सबवर्सन के साथ आंशिक चेकआउट कर सकते हैं?
- 26. विधि अधिभार। क्या आप इसका इस्तेमाल कर सकते हैं?
- 27. चींटी Task.init() विधि में आप क्या कर सकते हैं?
- 28. क्या आप स्थिर सदस्य फ़ंक्शन इनलाइन कर सकते हैं?
- 29. डब्ल्यूपीएफ, क्या आप डिफ़ॉल्ट विंडोज रंग प्राप्त कर सकते हैं?
- 30. क्या आप यूनिट टेस्ट ओबस्कस्केटेड कोड कर सकते हैं?
आज मैंने सुना है कि एचटी का सबसे लंबा संस्करण बनाने के लिए धन्यवाद। – DevelopingChris
मुझे आश्चर्य हुआ कि मुझे ओस्लो, नॉर्वे के लिए स्थानीयकृत विज्ञापन क्यों मिले, जब भी मैंने अपने फोन पर ओपेरा मिनी के साथ नेट सर्फ किया, इससे पहले कि मुझे एहसास हुआ कि आईपी के भौगोलिक स्थान रूपांतरण के कारण आई है ... ऐसा होता है कि ओस्लो दो जोड़े जहां से मैं रहता हूं, समय क्षेत्र दूर :-) – Kaniu
चैनचान: आप हमेशा इसके लिए मुझ पर भरोसा कर सकते हैं;) – BenAlabaster