2012-06-24 13 views
5

मैं जिस सीएमएस का उपयोग कर रहा हूं वह मुझे यूटीसी/जीएमटी समय से उपयोगकर्ता के समय ऑफसेट तक पहुंचने की अनुमति देता है। इसलिए, यदि उपयोगकर्ता ने अपना टाइमज़ोन ईएसटी पर सेट किया है, तो यह ऑफसेट "-5" होगा।डेलाइट बचत समय में समय ऑफसेट क्या है या नहीं, यह जांचने के लिए कैसे करें?

date('M j Y h:i A', time() + $offset*3600) 

यह काम करता है, को छोड़कर जब डेलाइट सेविंग टाइम में उपयोगकर्ता के लिए प्रभावित कर रहा है, तो यह है:

क्या मैं सही कर रहा हूँ अब जब मैं वर्तमान समय प्रदर्शित करने के लिए की जरूरत है कुछ की तरह है एक घंटे पीछे

तो, मेरा सवाल यह है कि, मैं कैसे निर्धारित कर सकता हूं कि दिए गए समय ऑफसेट (जैसे "-5") में एक घंटे जोड़ा जाना चाहिए?

उत्तर

6

आप इसे ऑफसेट से अकेले नहीं प्राप्त कर सकते क्योंकि ऑफ़सेट पूरे अक्षांश पर लागू होता है और उस पर देशों में समान डीएसटी नहीं होता है। उदाहरण के लिए in Australia, Daylight Saving Time is not observed in Queensland, the Northern Territory or Western Australia लेकिन हर जगह। आपको geolocate your users करना होगा और फिर PHP's DateTimeZone API के साथ जांच करें कि उस देश में डीएसटी है या नहीं।

भी देखें How to automatically detect user's timezone?

+1

* (संबंधित) * दिलचस्प पढ़ना: http://derickrethans.nl/storing-date-time-in-database.html – NikiC

2

यदि आप केवल इतना है कि "-5", तो आप उस दृढ़ संकल्प बनाने के लिए पर्याप्त जानकारी नहीं है। यह बेहतर होगा यदि आप उस समय क्षेत्र के नाम तक पहुंचने की व्यवस्था कर सकें जिसमें उपयोगकर्ता स्थित है (जैसे "अमेरिका/न्यू_यॉर्क")।

7

http://php.net/manual/en/function.date.php

मैं (मैं राजधानी) | तिथि डेलाइट सेविंग टाइम में है या नहीं 1 अगर डेलाइट सेविंग टाइम, 0 अन्यथा।

क्या इससे मदद मिलती है?

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

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