2012-04-24 15 views
57

संभव डुप्लिकेट:
PHP Date String Formatपीएचपी परिवर्तित दिनांक स्वरूप dd/mm/yyyy => yyyy-mm-dd

मैं dd/mm/yyyy => yyyy-mm-dd से एक तिथि परिवर्तित करने के लिए कोशिश कर रहा हूँ। मैंने mktime() फ़ंक्शन और अन्य फ़ंक्शंस का उपयोग किया है लेकिन मैं इसे काम नहीं कर सकता। मैंने को '/' का उपयोग करके मूल तिथि को डेलीमीटर के रूप में प्रबंधित किया है, लेकिन मुझे के साथ '/' प्रारूप को बदलने और बदलने में कोई सफलता नहीं है।

किसी भी मदद की सराहना की जाएगी। m/d/y या d-m-y स्वरूपों में

उत्तर

154

तिथियां विभिन्न घटकों के बीच विभाजक पर देखकर disambiguated कर रहे हैं: यदि विभाजक एक स्लैश (/), तो अमेरिकी m/d/y माना जाता है है; जबकि विभाजक एक डैश (-) या एक बिंदु (.) है, तो यूरोपीय d-m-y प्रारूप माना जाता है। more here देखें।

डिफ़ॉल्ट दिनांक फ़ंक्शन का उपयोग करें।

$var = "20/04/2012"; 
echo date("Y-m-d", strtotime($var)); 

संपादित मैं सिर्फ यह परीक्षण किया है, और किसी भी तरह, पीएचपी dd/mm/yyyy प्रारूप के साथ अच्छी तरह से काम नहीं करता। यहाँ एक और समाधान है।

$var = '20/04/2012'; 
$date = str_replace('/', '-', $var); 
echo date('Y-m-d', strtotime($date)); 
+1

यहां केवल 1 9 70-01-01 प्राप्त करें यदि मैं डीडी/मिमी/yyyy प्रारूप का उपयोग कर रहा हूं। इस कोड के साथ मिमी/डीडी/yyyy प्रारूप ठीक है। –

+20

@ सिबिराजपीआर ** एम/डी/वाई या डी-एम-वाई प्रारूपों में तिथियों को विभिन्न घटकों के बीच विभाजक को देखकर असंबद्ध किया जाता है: यदि विभाजक एक स्लैश (/) है, तो अमेरिकी एम/डी/वाई माना जाता है; जबकि अगर विभाजक एक डैश (-) या एक बिंदु (।) है, तो यूरोपीय डेमी प्रारूप माना जाता है। ** यहां और देखें: http://www.php.net/manual/en/function.strtotime.php – hjpotter92

+0

आपकी बहुमूल्य जानकारी के लिए धन्यवाद। –

3

यह करें:

date('Y-m-d', strtotime('dd/mm/yyyy')); 

लेकिन यकीन है कि 'dd/mm/yyyy' बनाने के वास्तविक तिथि है।

+0

धन्यवाद, यह अच्छी तरह से काम करता है !! –

+1

यह समस्याग्रस्त है क्योंकि स्ट्रेटोटाइम '/ 'विभाजक के साथ अमेरिकी के रूप में एक तारीख पढ़ेगा, यानी 'एम/डी/वाई' जबकि' '' यूरोपीय 'डीएमवाई 'के रूप में। स्वीकार्य उत्तर के संपादन और PHP दस्तावेज़ देखें: http://php.net/manual/en/function.strtotime.php - नोट: तिथियां एम/डी/वाई या डीमी ​​प्रारूपों को देखो द्वारा असंबद्ध कर रहे हैं विभिन्न घटकों के बीच विभाजक पर आईएनजी: अगर विभाजक एक स्लैश (/) है, तो अमेरिकी एम/डी/वाई माना जाता है; जबकि अगर विभाजक एक डैश (-) या एक बिंदु (।) है, तो यूरोपीय डी-एम-वाई प्रारूप माना जाता है। – haakym

20

का उपयोग करते हुए यहाँ एक और समाधान तारीख का उपयोग नहीं है()। इतना स्मार्ट नहीं :)

$var = '20/04/2012'; 
echo implode("-", array_reverse(explode("/", $var))); 
+5

यदि यह स्मार्ट नहीं है, तो यह इतना चालाक क्यों है। मुझे इस समाधान के साथ कोई समस्या नहीं दिखाई दे रही है, और यह तिथियों और इलाकों के साथ घूमती रहती है। हर बार गारंटीकृत प्रदर्शन। –

+0

@tosin बहुत रचनात्मक समाधान! –

+0

यह केवल तभी काम करेगा जब वे 05/04/2010 की तरह 0 जोड़ते हैं, अगर वे इसे लिखते हैं 5/4/2010 यह काम नहीं करेगा। – Shadowbob

2

मैं ध्यान दें कि यह जब वास्तविक तिथि से समय-चिह्न का उपयोग करने के समय का प्रतिनिधित्व करने प्रोग्रामिंग बेहतर होगा पसंद आया, तो आप किसी भी प्रारूप में "टाइमस्टैम्प" मूल्य को बदलने के लिए PHP का उपयोग कर सकते जिस तारीख को आप चाहते हैं।

+2

@VitorTyburski आप गंभीर नहीं हो सकते हैं? किसी भी पेशेवर प्रोग्रामर को अपने सही दिमाग के साथ पता है कि टाइमस्टैम्प के रूप में तारीख को संग्रहीत करना तारीख स्वरूपण और समय के बिट्स को जोड़ने या हटाने का सबसे अच्छा तरीका है, क्योंकि यह सब कुछ टाइमस्टैम्प मान में कई सेकंड जोड़ना या घटाना है। –

+0

मुझे कुछ अध्ययन मिल गया और आपका बिंदु देखें। आप सही हे। हालांकि आपने सवाल का जवाब नहीं दिया था। –

+0

@VitorTyburski आपने अपनी पहली टिप्पणी क्यों हटा दी? यह केवल दिखाता है कि आप अपनी गलतियों को छिपाने के लिए "हटाएं" सुविधा पर बहुत अधिक भरोसा कर रहे हैं। मैंने इस सवाल का जवाब नहीं दिया है क्योंकि जब तक मैं धागे पर था, तब तक सबसे अच्छा जवाब पहले से ही था, इसलिए मैं सिर्फ एक बिंदु बनाना चाहता था कि टाइमस्टैम्प मूल्य का उपयोग करना अच्छा अभ्यास है। –