2012-04-13 22 views
8

निम्न स्क्रिप्ट गलत समय लौटने के बाद मैं फोन date_default_timezone_set("UTC")पीएचपी गलत समय

<?PHP 
    $timestamp = time(); 
    echo "<p>Timestamp: $timestamp</p>"; 

    // This returns the correct time 
    echo "<p>". date("Y-m-d H:i:s", $timestamp) ."</p>"; 


    echo "<p>Now I call 'date_default_timezone_set(\"UTC\")' and echo out the same timestamp.</p>"; 
    echo "Set timezone = " . date_default_timezone_set("UTC"); 

    // This returns a time 5 hours in the past 
    echo "<p>". date("Y-m-d H:i:s", $timestamp) ."</p>"; 

?> 

सर्वर पर समय क्षेत्र लौटने की तारीख BST है। तो क्या होना चाहिए कि 'तारीख' को दूसरी कॉल को पहली कॉल के पीछे 1 घंटा वापस करना चाहिए। यह वास्तव में पहले के पीछे 5 घंटे का समय लौट रहा है।

मुझे ध्यान रखना चाहिए कि सर्वर मूल रूप से ईडीटी टाइमज़ोन (यूटीसी -4) के साथ स्थापित किया गया था। इसे बीएसटी (यूटीसी +1) में बदल दिया गया था और सर्वर को पुनरारंभ किया गया था।

मैं यह नहीं समझ सकता कि यह एक PHP समस्या है या सर्वर के साथ एक समस्या है।

+0

की सूची निम्नलिखित के साथ अपने क्षेत्र सेट क्या है date_default_timezone_get() दिखा * पहले * आप समय क्षेत्र बदलने के? – BenOfTheNorth

+0

समय क्षेत्र: यूरोप/लंदन – gargantuan

+0

और आपके सर्वर की 'तिथि' टर्मिनल कमांड रिटर्न क्या है? –

उत्तर

6

यह लगभग निश्चित रूप से php में त्रुटि नहीं है, बल्कि आपके स्थानीय टाइमज़ोन कॉन्फ़िगरेशन में है।

अधिकतर, आप वास्तव में सिस्टम-व्यापी समय क्षेत्र को नहीं बदलते थे, लेकिन केवल एक इंटरैक्टिव डिस्प्ले के रूप में। जांचें कि /etc/localtime जो आप उम्मीद करेंगे उससे मेल खाता है। डेबियन सिस्टम पर, आप सिस्टम-व्यापी टाइमज़ोन सेट करने के लिए tzselect (superuser विशेषाधिकारों के साथ) चला सकते हैं।

टाइमज़ोन सेट करने के बाद, आपको अपनी घड़ी को रीसेट करना पड़ सकता है। कई प्रणालियों पर, जो समय के साथ स्वचालित रूप से होनी चाहिए, लेकिन आप इसे ntpdate -u pool.ntp.org चलाकर मैन्युअल रूप से कर सकते हैं।

1

आपको अपने देश के सही समय क्षेत्र के लिए PHP मैनुअल की जांच करनी चाहिए। फिर इसे date_default_timezone_set() फ़ंक्शन में सेट करें। स्पष्टीकरण के लिए, मैं इसे यहाँ समझाया http://t2techblog.com/php-a-simple-function-for-getting-the-current-nigeria-local-time/

+0

शायद आप एक उदाहरण प्रदान कर सकते हैं। – Lance

+0

उदाहरण: एक साधारण कार्य जो मेरे देश (नाइजीरिया) में एक स्वागत संदेश के साथ सही समय देता है।

+0

मुझे वास्तव में खेद है कि फ़ंक्शन और मेरे ग्रंथ एक साथ जाम-पैक हैं। मैं यहाँ नया हूँ .. फिर भी यह पता लगाना कि चीजें कैसे काम करती हैं –

0

सिर्फ कोड

date_default_timezone_set("Asia/Bangkok");//set you countary name from below timezone list 
    echo $date = date("Y-m-d H:i:s", time());//now it will show "Asia/Bangkok" or your date time 

समर्थित समय क्षेत्र http://www.php.net/manual/en/timezones.php

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