2015-02-19 8 views
9

के लिए प्रारूप टाइमज़ोन मैं Carbon ऑब्जेक्ट में दिनांक के लिए टाइमज़ोन सेट करने का प्रयास कर रहा हूं। यह स्थानीय रूप से ठीक काम करता है लेकिन मेरे उत्पादन बॉक्स पर यह मुझे Bad timezone त्रुटि दे रहा है।कार्बन तिथि

मैं कोशिश की है:

$date->setTimezone('7'); 
$date->setTimezone('+7'); 
$date->setTimezone('7:00'); 
$date->setTimezone('+7:00'); 
$date->setTimezone('UTC 7'); 
$date->setTimezone('UTC +7'); 
$date->setTimezone('UTC 7:00'); 
$date->setTimezone('UTC +7:00'); 

कोई विचार क्यों यह मेरी उत्पादन बॉक्स पर शिकायत कर रहा है। दस्तावेज नहीं मिल सकता है या तो यहां प्रवेश करने के लिए "उचित" प्रारूप क्या है। क्या कोई मदद कर सकता है।

एफवाईआई: स्थानीय खिड़कियां है, और प्रोड उबंटू बॉक्स है।

उत्तर

17

आप इस के साथ समय क्षेत्र बदलने के कर सकते हैं:

$timestamp = '2014-02-06 16:34:00'; 
$date = Carbon::createFromFormat('Y-m-d H:i:s', $timestamp, 'Europe/Stockholm'); 
$date->setTimezone('UTC'); 

यह प्रारूप मेरे स्थानीय (उबंटू) और उत्पादन (redhat) परियोजना के लिए ठीक काम कर रहा।

+1

मैं क्योंकि मैं createFromTimestamp साथ समय क्षेत्र सेट करने की कोशिश की, भले ही वह दूसरे परम स्वीकार करता फंस गया था। जाहिर है, टाइमस्टैम्प हमेशा यूटीसी में है ... –

+0

@ mladen-janjetović क्या आप मुझे अपना कोड दिखा सकते हैं, आप कैसे कोशिश कर रहे हैं? –

+0

यदि आप एप्लिकेशन के अनुसार प्रारूप बदलना चाहते हैं, तो आपको अपनी आवश्यकता के अनुसार config/app.timezone घटक सेट करना चाहिए। –

9

मुझे लगता है कि आपको official php timezone list का संदर्भ लेना चाहिए। आपके मामले में आप

$date->setTimezone('Asia/Phnom_Penh'); 

यूटीसी + 7: 00 के लिए उपयोग कर सकते हैं।

+0

यह कार्बन.एफ़.पी. फ़ाइल या नियंत्रक में जोड़ा जाना है? –

0

यदि मुझे गलत नहीं है, तो आप अपने कार्बन ऑब्जेक्ट में टाइमज़ोन ऑफसेट पास करना चाहते हैं। अगर ऐसी बात है, निम्न प्रयास करें:

 //For UTC +7 
     $date->addSeconds(25200); // Time in seconds 
     //For UTC -7 
     $date->addSeconds(-25200); // Time in seconds 
संबंधित मुद्दे