strotime()
का उपयोग करते समय
आपको यह सुनिश्चित करने की आवश्यकता है कि आप एक वैध डेटाटाइम प्रारूप
का उपयोग कर रहे हैं। . अन्यथा strtotime()
false
लौटाएगा या आपको एक अप्रत्याशित मूल्य देता है।
XX/XX/XXXX प्रारूप का उपयोग करने वाली तिथियां यूएस प्रारूप में मानी जाती हैं, जिसका अर्थ है कि पहले दो अंक महीने का प्रतिनिधित्व करते हैं, अगले दो अंक महीने के दिन का प्रतिनिधित्व करते हैं, और अंतिम चार अंक वर्ष का प्रतिनिधित्व करते हैं। जब डैश का उपयोग किया जाता है, तो तिथियों को यूरोपीय प्रारूप में माना जाता है। उदाहरण के लिए:
04/18/2017 = April 18, 2017
12/18/2017 = December 18, 2017
18-04-2017 = April 18, 2017
18-12-2017 = December 18, 2017
यदि आप गलती से दिन और महीने बदल देते हैं strtotime()
तारीख अमान्य होने के कारण झूठी वापसी होगी।
18/04/2017 // error
18/12/2017 // error
04-18-2018 // error
12-18-2017 // error
उपरोक्त उदाहरण सीधे आगे हैं। लेकिन जब तारीखें अस्पष्ट हो सकती हैं तो आप मुद्दों में भाग सकते हैं। उदाहरण के लिए:
04/12/2017 = April 12, 2017
12/04/2017 = December 4, 2017
04-12-2017 = December 4, 2017
12-04-2017 = April 12, 2017
उपरोक्त उदाहरणों में दिन और महीने को बदलकर हमें अभी भी वैध तिथियां मिलती हैं जो आपके आवेदन में अप्रत्याशित परिणाम दे सकती हैं। इन संभावित मुद्दों को हल करने के लिए DateTime::createFromFormat()
दिनांक विज्ञापन को पार्स करने के लिए DateTime()
लौटाएं
ऑब्जेक्ट जिससे आप यूनिक्स टाइमस्टैम्प प्राप्त कर सकते हैं
, तारीख को दूसरे प्रारूप में बदलें
, या अन्य DateTime
. से तुलना करने के लिए इसका उपयोग करें वस्तुओं।
// Parse US date format
$date1 = DateTime::createFromFormat('m/d/Y', '04/18/2017');
// Get Unix timestamp of 1493581268
$timestamp = $date1->getTimestamp();
// Parse European date format
$date2 = DateTime::createFromFormat('d-m-Y', ''18-04-2017);
// Get MySQL format (ISO-8601) of 2017-04-18
$mysqlDate = $date2->format('Y-m-d');
यह भी देखें:
आपके विशिष्ट मामले के लिए, निम्नलिखित कोड काम करेगा:
$date = $date1 = DateTime::createFromFormat('m/d/Y', '20/02/2000');
$D->query = $date->format('Y-m-d'); // 2000-02-20