2012-06-08 14 views
5

मैं में strtotime के साथ दिनांक प्रदर्शित करने की कोशिश कर रहा हूं लेकिन यह हमेशा 01/01/1970 लौटाता है।PHP: strtotime() हमेशा देता है 01/01/1970

यहाँ मेरी codeline है:

echo "<p><h6>".date('d/m/Y', strtotime($row['DMT_DATE_DOCUMENT']))."</h6></p>"; 

मेरी डेटाबेस में, क्षेत्र एक varchar है और रिकॉर्ड yyyy.mm.dd तरह से स्वरूपित कर रहे हैं

मैं एक और क्षेत्र के लिए एक ही codeline का उपयोग करने वाले yyyy-mm-dd (वर्कर भी) की तरह बनाया गया है और यह ठीक काम करता है।

आपकी मदद के लिए धन्यवाद।

+0

क्योंकि strtotime मान लिया गया है शायद इसलिए है कि dd/mm/yyyy बजाय और अगर आप इनपुट की तरह एक तारीख 13/2/2012 यह शिकायत करता है कि कोई 13 वां महीना नहीं है और आपको समय 0 (1/1/1970) –

उत्तर

4

प्रारूप yyyy-mm-dd काम करता है के बाद से, - साथ . को बदलने के लिए प्रयास करें:

date('d/m/Y', strtotime(str_replace('.', '-', $row['DMT_DATE_DOCUMENT']))); 
3

साथ प्रयास करें:

$date = date_parse_from_format("Y.m.d", $row['DMT_DATE_DOCUMENT']); 
$time = mktime($date['hour'], $date['minute'], $date['second'], $date['month'], $date['day'], $date['year']); 
echo "<p><h6>".date('d/m/Y', $time)."</h6></p>"; 

(date_parse_from_format() का उपयोग करने के बजाय strtotime())

या बस:

$date = date_parse_from_format("Y.m.d", $row['DMT_DATE_DOCUMENT']); 
echo "<p><h6>{$date['day']}/{$date['month']}/{$date['year']}</h6></p>"; 
+1

देता है हां, केवल 'तारीख' 'date_parse_from_format' के प्रत्यक्ष आउटपुट को स्वीकार नहीं करेगा। – deceze

+0

आप सही हैं .. तो क्षमा करें, मैं अभी सही कर दूंगा। – fquffio

2

the strtotime page in the PHP manual से उद्धरण। मीटर में

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

संभावित अस्पष्टता से बचने के लिए, यह जब संभव आईएसओ 8601 (YYYY-MM-DD) तिथि या DateTime::createFromFormat() उपयोग करने के लिए सबसे अच्छा है।

तो आपके मामले में यह या तो YYYY-MM-DD या d.m.y प्रारूप में होना चाहिए।

आप अपने कस्टम प्रारूप पार्स करने के लिए तो date_create_from_format

उदाहरण के लिए उपयोग करना चाहते हैं,

date_create_from_format('Y.m.d',$row['DMT_DATE_DOCUMENT']) 
संबंधित मुद्दे