PHP में डेट फॉर्मेट बदलना
उदाहरण
<?php
function string_convert($my_date) {
$sec = strtotime($my_date);
$my_date = date("Y-m-d H:i", $sec);
$my_date = $my_date . ":00";
echo $my_date;
}
$my_date = "23/11/2020 11:59 PM";
string_convert($my_date);
?>
आउटपुट
1970-01-01 00:00:00
समस्या विश्लेषण
आउटपुट 1970-01-01 00:00:00 (Unix epoch) आ रहा है क्योंकि strtotime() दिए गए फॉर्मेट "23/11/2020 11:59 PM" को सही से पार्स नहीं कर पा रहा।
सुधारा गया संस्करण
<?php
function convertDateFormat($dateString, $inputFormat = 'd/m/Y h:i A', $outputFormat = 'Y-m-d H:i:s') {
// DateTime::createFromFormat का उपयोग करें अधिक विश्वसनीय पार्सिंग के लिए
$date = DateTime::createFromFormat($inputFormat, $dateString);
if ($date === false) {
throw new Exception("Invalid date format: $dateString");
}
return $date->format($outputFormat);
}
// उपयोग
$my_date = "23/11/2020 11:59 PM";
try {
$converted = convertDateFormat($my_date);
echo "Converted: $converted";
} catch (Exception $e) {
echo "Error: " . $e->getMessage();
}
?>
आउटपुट
Converted: 2020-11-23 23:59:00
मुख्य फंक्शन्स
| फंक्शन | उपयोग |
|---|---|
| strtotime() | इंग्लिश टेक्स्टुअल डेटटाइम को Unix टाइमस्टैम्प में पार्स करता है |
| date() | टाइमस्टैम्प को फॉर्मेटेड स्ट्रिंग में बदलता है |
| DateTime::createFromFormat() | निर्दिष्ट फॉर्मेट के अनुसार डेट पार्स करता है (अधिक विश्वसनीय) |
| DateTime::format() | DateTime ऑब्जेक्ट को फॉर्मेट करता है |
सामान्य डेट फॉर्मेट कैरेक्टर्स
Y- 4 अंकों का वर्ष (2024)m- 2 अंकों का महीना (01-12)d- 2 अंकों का दिन (01-31)H- 24 घंटे फॉर्मेट में घंटे (00-23)i- मिनट्स (00-59)s- सेकंड्स (00-59)A- AM/PM अपरकेस
बेस्ट प्रैक्टिस
- नए कोड के लिए DateTime क्लास का उपयोग करें (अधिक शक्तिशाली, टाइमज़ोन सपोर्ट)।
strtotime()अस्पष्ट फॉर्मेट्स के साथ अविश्वसनीय हो सकता है।- हमेशा इनपुट फॉर्मेट स्पष्ट रूप से निर्दिष्ट करें।