2010-08-14 14 views
12

मैं कैसे देश का नाम पा सकते हैं - कि मैं निम्नलिखित की तरह कर सकते हैं करने के लिए> जीएमटी दिनांक/समय:देश के नाम से जीएमटी तिथि/समय कैसे ढूंढें?

उदाहरण:

$datetime = new GMT_search('America'); //output: 2010-01-01 00:00:00  
$datetime = new GMT_search('India'); //output: 2010-01-01 ??:??:??  
$datetime = new GMT_search('China'); //output: 2010-01-01 ??:??:?? 

मैंने कोशिश की gmdate(), date_default_timezone_set('Asia/....');, और ini_set('date.timezone','China'); लेकिन यह वास्तव में मेरे लिए मदद नहीं कर रहा है आसानी से जीएमटी तिथि/समय के लिए देश का नाम पाएं।

क्या कोई कृपया मुझे एक PHP उदाहरण दिखा सकता है, जो वास्तव में काम करता है?

धन्यवाद

+0

स्पष्टीकरण की आवश्यकता है, समस्या का समर्थन करने में समय लगता है? –

+3

एकाधिक समय क्षेत्रों वाले देशों के बारे में क्या? –

+0

और चीन भी। "चीन" कब देश बन गया? – GZipp

उत्तर

35

आप देश द्वारा DateTimeZone::listIdentifiers के साथ समय क्षेत्र खोज सकते हैं।

उदाहरण, पुर्तगाल में समय-क्षेत्रों पाने के लिए:

print_r(DateTimeZone::listIdentifiers(DateTimeZone::PER_COUNTRY, "PT")); 

देता है:

 
Array 
(
    [0] => Atlantic/Azores 
    [1] => Atlantic/Madeira 
    [2] => Europe/Lisbon 
)

फिर आप कर सकते हैं:

$d = new DateTime("now", new DateTimeZone("Atlantic/Azores")); 
echo $d->format(DateTime::W3C); //2010-08-14T15:22:22+00:00 

में अधिक दोहराया गया है के रूप में बार-बार यह धागा, आप प्रति देश एक एकल समय क्षेत्र नहीं प्राप्त कर सकते हैं।देशों में कई टाइमज़ोन हैं, और आप देखेंगे कि this page भी यू.एस.ए. जैसे कुछ देशों के लिए मनमाने ढंग से चयन नहीं करता है।

+2

धन्यवाद, मैं यह जानने का प्रयास कर रहा था कि कैसे देश का नाम/भूमि कोड शहर या टाइमज़ोन तक पहुंचने के लिए। पूर्व: print_r (DateTimeZone :: listIdentifiers (DateTimeZone :: PER_COUNTRY, "PT")); – YumYumYum

+2

आपके कोड उदाहरण की सही चीज़/सुंदरता यहां है: 1. मैं अब भी जो भी 2 खोज करने के लिए भूमि कोड डालूंगा। मैं सरणी की लंबाई की जांच करूंगा और किसी को भी चुनूंगा 3. मेरे पास मेरा परिणाम है। एक बार फिर धन्यवाद.. – YumYumYum

3

अगर यह है कि आप क्या ढूंढ रहे हैं, लेकिन PEAR एक "Date" पैकेज उपलब्ध एक अच्छा उदाहरण है कि आप के लिए क्या पूछ रहे हैं क्या करने के लिए लगता है है कि है सुनिश्चित नहीं हैं।

http://pear.php.net/manual/en/package.datetime.date.examples.php

3

Here आप PHP द्वारा समर्थित समय क्षेत्र, जो होती हैं की पूरी सूची मिल जाएगा उदा साथ प्रयोग किया जा करने के लिए ("परिवर्तित समय क्षेत्र" के लिए नीचे स्क्रॉल) date_default_timezone_set()। कई टाइमज़ोन वाले देशों के लिए समर्थन भी देखने के लिए सुविधाजनक है। example of the American region लें।

<?php 
date_default_timezone_set('America/New_York'); 
echo date('D,F j, Y, h:i:s A'); 
?> 

सूची PHP द्वारा समर्थित एक पूर्ण टाइमज़ोन है, जिसका उपयोग उदाहरण के साथ किया जाना है। date_default_timezone_set()।

+2

मेरे पास केवल देश है, कोई शहर डेटाबेस नहीं है। आप देश को :: GMT_DateTime कैसे बना सकते हैं? – YumYumYum

+2

क्या मुझे डिफ़ॉल्ट शहर के साथ देश बनाना है? मैं विशिष्ट शहर की तारीख/समय नहीं चाहता हूं? लेकिन फिर मुझे एशिया या यूरोप में समस्या है? पूर्व: $ देश = सरणी ('अमेरिका' => 'न्यू_यॉर्क', 'भारत' => 'मुंबई', 'चीन' => 'सांगई'); – YumYumYum

+0

ऐसी संभावना है कि एक देश में एक से अधिक समय क्षेत्र होगा। तो देश के नाम को बदलने की कोशिश करना गलत परिणाम देगा। –

2

आप इसे ऐसा नहीं कर सकते हैं, क्योंकि बहुत से देशों में कई टाइमज़ोन हैं। आप इसके बजाय किसी शहर के नाम से टाइमज़ोन स्टोर कर सकते हैं, लेकिन मैं सेकंड में टाइमज़ोन ऑफ़सेट के साथ एक पूर्णांक का उपयोग करूंगा।

आप महाद्वीप द्वारा समय-क्षेत्रों की एक सूची/इस समारोह से शहर प्राप्त कर सकते हैं: www.php.net/manual/en/function.timezone-identifiers-list.php

आप संबंधित से ऑफसेट प्राप्त कर सकते हैं यह फ़ंक्शन: www.php.net/manual/en/datetimezone.getoffset.php

जब आपके पास वैध ऑफसेट है, तो आप बिना प्रारूप के दिनांक प्राप्त करने के लिए दिनांक() की बजाय gmdate() का उपयोग कर सकते हैं टाइमज़ोन/डीएस समायोजन। बस समय() + आपके द्वारा संग्रहीत समायोजन को पास करें: www.php.net/manual/en/function.gmdate.php

लिंक पोस्ट न करने के लिए खेद है, लेकिन मेरे पास पर्याप्त कर्म नहीं है।

+2

मैं यह कोशिश कर रहा हूं जहां आप केवल COUNTRY NAME का चयन करते हैं। EX: http://wwp.greenwichmeantime.com/time-zone/all.htm – YumYumYum

+2

जो मैं नहीं चाहता। इसके बारे में देश का नाम। – YumYumYum

+1

@Stackfan: हां, मैंने "संयुक्त राज्य अमेरिका" लिंक चुना है जो मुझे .../time-zone/usa और उल्लिखित पृष्ठ सामग्री में लाया। तो, आपने एक उदाहरण दिया जो आप चाहते हैं? आपने लिखा 'हां !! राजधानी/नीचे शहर मैं बात कर रहा हूँ। (देश का नाम + कैपिटल) === देश का नाम === ', यह कौन सा है? 'देश का नाम' या 'देश का नाम + पूंजी'? – VolkerK

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