दिलचस्प पोस्ट
क्यों JPasswordField.getPassword () उस में पासवर्ड के साथ एक स्ट्रिंग बनाते हैं? जब माउस विंडो छोड़ता है तो मैं कैसे पता लगा सकता हूँ? जावास्क्रिप्ट में URL से JSON कैसे प्राप्त करें? कस्टम शैलियों के साथ मैं डिफ़ॉल्ट PrimeFaces सीएसएस को ओवरराइड कैसे कर सकता हूं? डुप्लिकेट मोंगो ऑब्जेक्ट की संभावना दो अलग-अलग संग्रहों में उत्पन्न हो रही है? इन्टेंट का उपयोग करके एंड्रॉइड लॉन्च किया गया संगीत प्लेयर इकाई फ़्रेमवर्क के साथ कैस्केडिंग हटाना – ईएफ द्वारा हटाए गए संबंधित संस्थाएं कम क्रम में जावा में ArrayList <Long> सॉर्ट करने के लिए कैसे? क्या HTML5 वीडियो फ़ुलस्क्रीन बनाने का कोई तरीका है? जावा में एक निश्चित आकार की सूची को परिभाषित करें Import android.support.v7 को हल नहीं किया जा सकता फ़ाइल अपलोड के दौरान जावास्क्रिप्ट का उपयोग करके छवि आयाम प्राप्त करें Iphone UIImageView में एनिमेटेड जीआईएफ छवि जोड़ें JSF सेवा स्तर IE8 में अर्ध-पारदर्शी पीएनजी बग़ी लुप्त होकर कैसे हल / हल करें?

PHP में समयक्षेत्र रूपांतरण

क्या कोई भी पीएचपी में अलग-अलग समयक्षेत्रों में दिनांक और समय को परिवर्तित करने का एक आसान तरीका सुझा सकता है?

वेब के समाधान से एकत्रित समाधान "PHP में समयक्षेत्र रूपांतरण"

आप इसके लिए datetime ऑब्जेक्ट या उनके फ़ंक्शन उपनाम का उपयोग कर सकते हैं:

उदाहरण ( PHP मैनुअल से संक्षिप्त किया गया )

date_default_timezone_set('Europe/London'); $datetime = new DateTime('2008-08-03 12:35:23'); echo $datetime->format('Ymd H:i:s') . "\n"; $la_time = new DateTimeZone('America/Los_Angeles'); $datetime->setTimezone($la_time); echo $datetime->format('Ymd H:i:s'); 

टिप्पणियों के बारे में संपादित करें

लेकिन मैं इस पद्धति का उपयोग नहीं कर सकता क्योंकि मुझे अलग-अलग समय क्षेत्रों में तिथि दिखाने की जरूरत है क्योंकि विभिन्न स्थानों से उपयोगकर्ता लॉगिन है

वह कोई समस्या नहीं है। जब कोई उपयोगकर्ता लॉग इन करता है, तो आप अपना टाइमज़ोन निर्धारित करते हैं और इसे अपने डेटटाइम ऑब्जेक्ट पर सेट करते हैं जैसे दिखाया गया है। मैं अपनी परियोजनाओं में से एक में एक समान दृष्टिकोण का उपयोग कर रहा हूं और यह एक जादू की तरह काम करता है

डेटाबेस में मुझे किसी एकल समयक्षेत्र में तिथियां प्राप्त करने की आवश्यकता है, फिर केवल इसे ठीक से संसाधित किया जा सकता है

आप समय को किसी टाइमस्टैम्प के रूप में या किसी समय-समय पर एक समय-समय पर स्टोर करते हैं जब आप कोई दिनांकटाइम फ़ील्ड पूछते हैं, तो आप या तो समय-समय ऑब्जेक्ट में समय-समय पर इस समयक्षेत्र में कनवर्ट करते हैं या – यदि आपका डीबी इसका समर्थन करता है – चयनित टाइमज़ोन के साथ क्वेरी

एक आसान तरीका भी ऐसा दिखता है:

 date_default_timezone_set('Europe/London'); // your user's timezone $my_datetime='2013-10-23 15:47:10'; echo date('Ymd H:i:s',strtotime("$my_datetime UTC")); 

जैसा कि PHP मैनुअल में वर्णित है , strtotime () एक समयक्षेत्र को भी स्वीकार करता है, आपको इसे केवल अपने डेटटाइम पर जोड़ना होगा

मैं आपको यूटीसी में अपने सभी डेटासेटों को स्टोर करने की सलाह देता हूं क्योंकि इस तरह आपको डेलाइट सेविंग्स के साथ समस्या नहीं होगी।

यह मेरे लिए काम किया और यह बहुत साफ भी है!

 function convert_to_user_date($date, $format = 'n/j/Y g:i A', $userTimeZone = 'America/Los_Angeles', $serverTimeZone = 'UTC') { try { $dateTime = new DateTime ($date, new DateTimeZone($serverTimeZone)); $dateTime->setTimezone(new DateTimeZone($userTimeZone)); return $dateTime->format($format); } catch (Exception $e) { return ''; } } function convert_to_server_date($date, $format = 'n/j/Y g:i A', $userTimeZone = 'America/Los_Angeles', $serverTimeZone = 'UTC') { try { $dateTime = new DateTime ($date, new DateTimeZone($userTimeZone)); $dateTime->setTimezone(new DateTimeZone($serverTimeZone)); return $dateTime->format($format); } catch (Exception $e) { return ''; } } //example usage $serverDate = $userDate = '2014-09-04 22:37:22'; echo convert_to_user_date($serverDate); echo convert_to_server_date($userDate); 

दिनांक समय :: सेटटाइमज़ोन – तारीख_टाइमोज़न_सेट – दिनांक समय वस्तु के लिए समय क्षेत्र सेट करता है

वस्तु उन्मुख शैली

 <?php $date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru')); echo $date->format('Ymd H:i:sP') . "\n"; $date->setTimezone(new DateTimeZone('Pacific/Chatham')); echo $date->format('Ymd H:i:sP') . "\n"; ?> 

प्रक्रियात्मक शैली

 <?php $date = date_create('2000-01-01', timezone_open('Pacific/Nauru')); echo date_format($date, 'Ymd H:i:sP') . "\n"; date_timezone_set($date, timezone_open('Pacific/Chatham')); echo date_format($date, 'Ymd H:i:sP') . "\n"; ?> 

उपरोक्त उदाहरण आउटपुट होंगे:

 2000-01-01 00:00:00+12:00 2000-01-01 01:45:00+13:45 

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

यहां मेरा समाधान है:

 function changeTimeZone($dateString, $timeZoneSource = null, $timeZoneTarget = null) { if (empty($timeZoneSource)) { $timeZoneSource = date_default_timezone_get(); } if (empty($timeZoneTarget)) { $timeZoneTarget = date_default_timezone_get(); } $dt = new DateTime($dateString, new DateTimeZone($timeZoneSource)); $dt->setTimezone(new DateTimeZone($timeZoneTarget)); return $dt->format("Ymd H:i:s"); } 

इसलिए, सर्वर डिफ़ॉल्ट में कनवर्ट करने के लिए, आप केवल एक समय क्षेत्र पास करेंगे:

 changeTimeZone("2016-10-24 16:28", "Asia/Tokyo"); 

सर्वर डिफ़ॉल्ट से उपयोगकर्ता को कनवर्ट करने के लिए, आप 2 पैरामीटर रिक्त या खाली छोड़ देंगे:

 changeTimeZone("2016-10-24 16:28", "", "Asia/Tokyo"); 

और डिफ़ॉल्ट के लिए असंबंधित समयक्षेत्रों के बीच स्विच करने के लिए, आप 2 समय क्षेत्र प्रदान करेंगे:

 changeTimeZone("2016-10-24 16:28", "America/New_York", "Asia/Tokyo"); 

यूटीसी को स्थानीय:

 <?php $datetime = date("Ymd H:i:s"); $utc = new DateTime($datetime, new DateTimeZone('UTC')); $utc->setTimezone(new DateTimeZone('America/Sao_Paulo')); echo $utc->format('Ymd H:i:s'); ?> 
 <?php $time='6:02'; $dt = new DateTime($time, new DateTimeZone('America/New_York')); //echo $dt->format('Ymd H:i:s') . PHP_EOL; $dt->setTimezone(new DateTimeZone('Asia/Kolkata')); echo $dt->format('H:i') . PHP_EOL; ?> 

// एक क्षेत्र से दूसरे स्थान पर कनवर्ट करें .. / * $ zone_from = 'एशिया / कोलकाता';

 $zone_to='America/Phoenix'; date_default_timezone_set($zone_from); $convert_date="2016-02-26 10:35:00"; echo $finalDate=zone_conversion_date($convert_date, $zone_from, $zone_to); */ function zone_conversion_date($time, $cur_zone, $req_zone) { date_default_timezone_set("GMT"); $gmt = date("Ymd H:i:s"); date_default_timezone_set($cur_zone); $local = date("Ymd H:i:s"); date_default_timezone_set($req_zone); $required = date("Ymd H:i:s"); /* return $required; */ $diff1 = (strtotime($gmt) - strtotime($local)); $diff2 = (strtotime($required) - strtotime($gmt)); $date = new DateTime($time); $date->modify("+$diff1 seconds"); $date->modify("+$diff2 seconds"); return $timestamp = $date->format("Ymd H:i:s"); }