2012-03-01 6 views
6

मैं एक खोल स्क्रिप्ट (zsh, सटीक होना करने के लिए) का उपयोग करता है जोक्या 'यूएस/पूर्वी' और 'यूएस/सेंट्रल' और 'यूएस/पैसिफिक' स्ट्रेटटाइम या सिर्फ PHP के लिए बहिष्कृत हैं?

strftime "%I:%M %p %Z (%a, %b %d)" "$EPOCHSECONDS"

एक "वर्तमान समय" उत्पन्न करने के लिए है इस तरह के रूप

"14:45 सीएसटी (गुरु, मार्च 01) "

यह कई अलग अलग संयुक्त राज्य अमेरिका समय-क्षेत्रों में समय प्रदर्शित करने के लिए सक्षम होने की जरूरत है, और इसलिए मैं बहुत की तरह उपयोग कर रहा है 'अमेरिका/पूर्वी', 'यूएस/मध्य', और 'यूएस/प्रशांत':

export TZ='US/Eastern' 
strftime "%I:%M %p %Z (%a, %b %d)" "$EPOCHSECONDS" 

ऐसा लगता है कि यह ठीक काम करता है, और मैं इसे टीजेड = 'अमेरिका/सिटीनाम' का उपयोग करना पसंद करता हूं क्योंकि मुझे यह जानने की आवश्यकता नहीं है कि कौन सा शहर है जिसमें टीजेड है, मुझे बस यह कहना है कि मैं कौन सा टीजेड चाहता हूं।

हालांकि, मैं http://www.php.net/manual/en/timezones.others.php के पार हुआ और देखा कि यह कहना है कि

कृपया (यूटीसी के अलावा) यहाँ सूचीबद्ध समय क्षेत्र, के किसी भी उपयोग नहीं करते हैं वे केवल पिछड़े संगत कारणों के लिए मौजूद हैं।

मैं क्या मुद्दों अमेरिका/क्षेत्र नाम के साथ कर रहे हैं पता नहीं है, लेकिन मुझे पता है कि अगर उन्हें प्रयोग निकट भविष्य में एक समस्या उत्पन्न कर सकता है उत्सुक हूँ, या वे अभी भी उपयोग करने के लिए सुरक्षित हैं ? क्या यह सिर्फ PHP है जो उन्हें पसंद नहीं करता है, या हर कोई उनसे दूर जा रहा है?

उत्तर

7

ओल्सन डेटाबेस में टाइमज़ोन नामकरण के लिए मानक प्रारूप महाद्वीप/शहर है। आप "पुराने" नामों का उल्लेख करते हैं जैसे कि यूएस/पूर्वी, यूएस/सेंट्रल, और कई अन्य, tzdata स्रोत वितरण ("पिछड़ा" फ़ाइल में) में पिछड़े संगतता लिंक के रूप में सूचीबद्ध हैं। फ़ाइल के शीर्ष पर टिप्पणी के मुताबिक, ये नाम 1 99 3 के अंत में पिछड़े संगतता लिंक बन गए होंगे।

मुझे लगता है कि मुझे यह याद रखना याद है कि यह मानक अपनाया गया था क्योंकि इसे अधिक स्थिर माना गया था: भूगर्भीय (देश) सीमाएं बदलती हैं, शहर कभी नहीं घूमते हैं। शायद यह भी क्योंकि "पूर्वी" और "सेंट्रल" जैसे नाम अधिक भ्रमित माना जाता है क्योंकि उनका मतलब दुनिया के विभिन्न हिस्सों में अलग-अलग समय क्षेत्र है। हालांकि, मुझे फिलहाल नामकरण तर्क के लिए कोई संदर्भ नहीं मिल रहा है, इसलिए मुझे इस पर उद्धरण न दें।

महाद्वीप/शहर शैली के नामों को प्राथमिकता दी जाती है। ध्यान दें कि डेबियन और उबंटू जैसे ऑपरेटिंग सिस्टम आपको इन नामों का उपयोग करके सिस्टम टाइमज़ोन का चयन करने के लिए कहते हैं (जब तक वे इसे इंस्टॉलेशन समय पर स्वत: पहचान नहीं लेते), इन नामों का उपयोग करके आपको वास्तव में आवश्यकता नहीं होगी, जैसा कि आप कहते हैं, "पता है कि कौन सा शहर है जो टीजेड "क्योंकि शहर का नाम, ठीक है, टाइमज़ोन नाम का हिस्सा है! तो यदि आपने देश/क्षेत्र के नामों के बजाय या इसके अलावा महाद्वीप/शहर के नामों को सीखा है, तो आप पहले से ही ठीक हैं।

कहा जा रहा है, मुझे नहीं लगता कि ये नाम कभी गायब हो जाएंगे। टाइमज़ोन मेलिंग सूची पर, उन्हें निश्चित रूप से हमेशा "पिछड़ा संगतता" कहा जाता है, न कि "बहिष्कृत", और रहने का इरादा है, इसके बावजूद PHP क्या अनुशंसा करता है।

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