2012-09-30 25 views
6

यदि मैं index.php echo date('m/d/Y h:i:s a', time()); में दिनांक/समय आउटपुट करता हूं। यह सही है। यदि मैं इसके बाद कहीं भी दिनांक/समय आउटपुट करता हूं, उदाहरण के लिए एक विस्तार में यह 4 घंटे बिल्कुल बंद है। मैंने timpone को php.ini में और मैगेंटो में ठीक से सेट कर दिया है, इसलिए यह सुनिश्चित न करें कि इसका क्या कारण बन रहा है। मैं संस्करण 1.7.0.2 चला रहा हूँ।Magento ouputting गलत दिनांक और समय

संपादित

ठीक है तो मैं कुछ चीजें सीखा है।

Magento हमेशा एप्लिकेशन/mage.php में यूटीसी के लिए समय क्षेत्र सेट

line 767: date_default_timezone_set('UTC') 

तो, मूल रूप से आप तारीख(), समय() आदि आपके पास उपयोग नहीं कर सकते में अपने लक्ष्यीकरण समय क्षेत्र सेट करने के लिए Admin-> सिस्टम> विन्यास/जनरल> स्थान के विकल्प और की तरह कुछ का उपयोग करें: मैं हमेशा अपने समय क्षेत्र के साथ लाइन 767 की जगह सकता है, लेकिन मैं मूल कोड को संशोधित पसंद नहीं है

$now = Mage::getModel('core/date')->timestamp(time()); 
echo date('m/d/y h:i:s', $now); 

। क्या वहां कोई अन्य विकल्प हैं ???

उत्तर

7

Magento में पसंदीदा विधि this example में स्केलर मानों की बजाय ज़ेंड या वैरिएन डेट-टाइम ऑब्जेक्ट्स का उपयोग कर रही है। एक बार जब आप अपनी ऑब्जेक्ट कर लेंगे तो आप setTimezone कॉल के साथ इसे अन्य, गैर-सर्वर टाइमज़ोन में आसानी से परिवर्तित कर सकते हैं।

// a more complete example 
$datetime = Zend_Date::now(); 
// admin controls this output through configuration 
$datetime->setLocale(Mage::getStoreConfig(
      Mage_Core_Model_Locale::XML_PATH_DEFAULT_LOCALE)) 
     ->setTimezone(Mage::getStoreConfig(
      Mage_Core_Model_Locale::XML_PATH_DEFAULT_TIMEZONE)); 
echo $datetime->get(Zend_Date::DATETIME_SHORT); 
+0

मुझसे ऊपर उठाना ...... –

4

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

0

मेरे मामले में समय उदा। system.log लेकिन शेड्यूलर (cronjobs) में भी।

तो मान लें कि अब यह 01.15 वास्तविक समय है, शेड्यूलर में निर्मित समय हमेशा सही है, इसलिए 01.15 इस मामले में। निष्पादित समय की तुलना में कभी-कभी 01.16 होता है लेकिन अक्सर 02.16 होता है, इसलिए आप 01.16 और 02.16 का मिश्रण देखते हैं, इसलिए समय निरंतर भिन्न होता है।

जब मैं सिस्टम लॉग की जांच करता हूं, तो मैं वही देखता हूं, सबसे पहले आप 01.50, 02.45, 03.50 और अचानक 02.55 जैसे संदेशों के लिए बढ़ते समय देखते हैं।

तो इस प्रणाली में कुछ ऐसा है जो इस समय बदलता है, लेकिन जहां, शायद मेरे प्रदाता को कुछ मिल जाए ... लेकिन यह सिस्टम समय नहीं है, इसे Magento के साथ करना है .. Magento लॉग को लिखता है। ।

संपादित करें:

क्यों इस समस्या नहीं है मैं नहीं जानता, लेकिन मैं अपने क्षेत्र यूरोप/एम्स्टर्डम में Mage.php में UTC समय बदल दिया है। अब लॉग में भी सभी बार सही हैं।

लेकिन एक समस्या फिर से, जब मैं शेड्यूलर (एक्सटेंशन) में तुरंत क्रोनबॉज शेड्यूल करता हूं तो यह नौकरी 1 घंटे बाद निर्धारित होती है (शेड्यूलर में अन्य बार सही होती है)। एक विस्तार कॉपरनिकिका उदाहरण पर चलता है 18.00 (शेड्यूलर के माध्यम से नहीं) और लिखते हैं कि इसे पिछली बार 17.00 बजे निष्पादित किया गया है ... कोई अन्य गैर Magento webshops इस तरह की समस्याएं हैं .. डेटाबेस php.ini में यूरोप/एम्स्टर्डम का भी उपयोग कर रहा है ..

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