PHP दिनांक और समय स्ट्रिंग्स को उपयोग करने योग्य DateTime
ऑब्जेक्ट्स में बदलने के लिए कई मज़बूत तरीके प्रदान करता है, जिससे गणना, स्वरूपण और तुलनाएँ संभव होती हैं। यह लेख दो प्राथमिक तकनीकों का पता लगाता है: strtotime()
और date()
का उपयोग करना, और अधिक शक्तिशाली DateTime::createFromFormat()
(या इसके ऐलियास date_create_from_format()
) का उपयोग करना।
विषयवस्तु की तालिका
strtotime()
औरdate()
का उपयोग करनाDateTime::createFromFormat()
का उपयोग करना- मज़बूत त्रुटि संचालन
- सही विधि चुनना
strtotime()
और date()
का उपयोग करना
यह तरीका साधारण दिनांक स्ट्रिंग रूपांतरणों के लिए एक संक्षिप्त समाधान प्रदान करता है। strtotime()
एक स्ट्रिंग को यूनिक्स टाइमस्टैम्प (1 जनवरी, 1970 से सेकंड) में पार्स करता है, और date()
इस टाइमस्टैम्प को स्वरूपित करता है। सुविधाजनक होने के बावजूद, इसमें सीमाएँ हैं:
- अस्पष्टता: “01/02/2024” जैसी तिथियाँ स्पष्ट स्वरूपण विनिर्देश के बिना अस्पष्ट हैं।
- सीमित त्रुटि संचालन: असफलता पर केवल
false
देता है, न्यूनतम निदान जानकारी प्रदान करता है। - स्वरूपण प्रतिबंध: सभी दिनांक स्वरूपों को लगातार संभाल नहीं पाता है।
DateTime::createFromFormat()
का उपयोग करना
DateTime::createFromFormat()
(या date_create_from_format()
) बेहतर नियंत्रण और त्रुटि संचालन प्रदान करता है। इनपुट स्ट्रिंग के स्वरूप को स्पष्ट रूप से परिभाषित करके, अस्पष्टता समाप्त हो जाती है। यह अधिक सूचनात्मक त्रुटि प्रतिक्रिया भी प्रदान करता है।
format("Y-m-d") . "n";
echo "स्वरूपित दिनांक-समय: " . $dateTime->format("Y-m-d H:i:s") . "n";
}
$dateTimeString = "2024-01-01 14:30:00";
$dateTimeWithTime = DateTime::createFromFormat("Y-m-d H:i:s", $dateTimeString);
if ($dateTimeWithTime === false) {
echo "अमान्य दिनांक/समय स्ट्रिंग";
} else {
echo "स्वरूपित दिनांक-समय: " . $dateTimeWithTime->format("Y-m-d H:i:s") . "n";
}
?>
मज़बूत त्रुटि संचालन
हमेशा त्रुटि संचालन को शामिल करें। strtotime()
और DateTime::createFromFormat()
दोनों की वापसी मान की जाँच करें। यदि false
है, तो त्रुटि लॉग करें या उपयोगकर्ता को सूचनात्मक प्रतिक्रिया दें।
सही विधि चुनना
जबकि strtotime()
और date()
बहुत ही सरल परिदृश्यों के लिए उपयुक्त हैं, अधिकांश मामलों में, विशेष रूप से उपयोगकर्ता इनपुट या जटिल दिनांक स्वरूपों से निपटते समय, DateTime::createFromFormat()
की पुरजोर सिफारिश की जाती है। इसकी परिशुद्धता, स्पष्ट स्वरूपण संचालन और बेहतर त्रुटि संचालन इसे अधिक मज़बूत और विश्वसनीय विकल्प बनाते हैं।