php strtotime गलत परिणाम दे रहा है

जब मैं strtotime फ़ंक्शन का उपयोग करता हूं तो यह मुझे दो अलग-अलग सर्वरों पर अलग-अलग परिणाम देता है। उनमें से एक मुझे सही जवाब देता है। इसमें PHP संस्करण 5.2.10 है।

अन्य सर्वर पर यह मुझे गलत तिथि देता है जिसमें PHP संस्करण 5.0.4 है। मुझे लगता है कि अंतर कारण है।

कोड:

$fromDate = $_POST['fromDate'];//25-11-2013
$strFromDate = date("Y-m-d", strtotime($fromDate));
echo $strFromDate;//2018-05-06

क्या कोई इसमें मेरी सहायता कर सकता है?

0
चूंकि PHP 5.0.4 प्राचीन और मृत है, इसलिए यह आश्चर्यचकित नहीं होगा कि यह बस एक बग है। गंभीर रूप से 5.0.4 ?! पीएस: हाँ, एक बग/अभी तक समर्थित प्रारूप की तरह दिखता है: 3v4l.org/86gWq
जोड़ा लेखक deceze, स्रोत
सर्वर पर टाइमज़ोन की जांच करें .. यदि आप एक ही परिणाम चाहते हैं तो दोनों सर्वरों पर स्पष्ट रूप से टाइमज़ोन सेट करें
जोड़ा लेखक Ghazanfar Mir, स्रोत
यह सब उस सर्वर के लिए डिफ़ॉल्ट टाइमज़ोम सेट पर निर्भर करता है। प्रत्येक पर phpinfo() करें और देखें कि अंतर क्या है।
जोड़ा लेखक DevlshOne, स्रोत
<कोड> वाई-एम-डी और आपके पास 25-11-2013 <= d-m-y कुछ जोड़ नहीं रहा है।
जोड़ा लेखक Funk Forty Niner, स्रोत

2 उत्तर

ऐसा शायद इसलिए होता है क्योंकि PHP 5.0.4 अभी तक dmY प्रारूप का समर्थन नहीं करता है, यहां

प्रारूप d-m-y को वाई-एम-डी में बदलने का प्रयास करें। यहां एक साधारण उदाहरण दिया गया है:

$fromDate = '25-11-2013';
sscanf($fromDate, '%d-%d-%d', $d, $m, $Y);
$strFromDate = date("Y-m-d", strtotime("$Y-$m-$d"));
echo $strFromDate;

This will work on all PHP 4.x and 5.x versions

0
जोड़ा
प्रतिभाशाली। बहुत बहुत धन्यवाद
जोड़ा लेखक Talha Malik, स्रोत

शायद समस्या स्थानीय लोगों से संबंधित है। जांचें कि यह दोनों सर्वर पर मेल खाता है या नहीं।

0
जोड़ा