डेटटाइम ऑब्जेक्ट से, मुझे अलग-अलग टाइमज़ोन में समय प्राप्त करने में दिलचस्पी है। रूप DateTime::setTimezone दस्तावेज़ में बताया गया है, यह बहुत अच्छी तरह से जब समयदिनाँक वस्तु एक स्ट्रिंग से बनाई गई है काम करता है:PHP डेटटाइम ऑब्जेक्ट - टाइमस्टैम्प और टाइमज़ोन संघर्ष
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
$date->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date->format('Y-m-d H:i:sP') . "\n";
$date->setTimezone(new DateTimeZone('UTC'));
echo $date->format('Y-m-d H:i:sP') . "\n";
echo $date->getTimestamp() . "\n";
उपरोक्त उदाहरण होगा उत्पादन:
2000/01/01 00: 00: 00 + 12: 00
2000/01/01 01: 45: 00 + 13: 45
1999/12/31 12: 00: 00 + 00: 00
अब दिलचस्प हिस्सा है: यदि हम लेने हमारे टाइमस्टैम्प को ऊपर उठाएं, और मैन्युअल निर्देशों के बाद इसके साथ हमारे डेटटाइम ऑब्जेक्ट को शुरू करें।
$date2 = new DateTime('@946641600');
$date2->setTimezone(new DateTimeZone('Pacific/Nauru'));
echo $date2->format('Y-m-d H:i:sP') . "\n";
$date2->setTimezone(new DateTimeZone('Pacific/Chatham'));
echo $date2->format('Y-m-d H:i:sP') . "\n";
$date2->setTimezone(new DateTimeZone('UTC'));
echo $date2->format('Y-m-d H:i:sP') . "\n";
echo $date2->getTimestamp() . "\n";
और यहाँ पर हम पाते हैं: // [संपादित करें] humm ... क्षमा करें, यह उत्पादन गलत है ...
1999/12/31 12: 00: 00 + 00: 00
1999- 12-31 12: 00: 00 + 00: 00
1999/12/31 12: 00: 00 + 00: 00
यूटीसी हमेशा के लिए !!! हम अब टाइमज़ोन नहीं बदल सकते हैं!
क्या यह PHP है या यह मैं हूं? संस्करण 5.3.15
क्या आप टाइमस्टैम्प के साथ तत्काल पर टाइमज़ोन निर्दिष्ट नहीं करना चाहते हैं? –
मुझे यहां एक अलग परिणाम मिल रहा है http://codepad.viper-7.com/zAv8dz – Baba
यह संस्करण 5.3.15 ....... – Baba