PHP में नंबर को महीना नाम में बदलना
विधि 1: date() + mktime()
<?php
$date = "2019-11-11";
echo "डेट प्रदर्शित हो रही है...\n";
echo "डेट = $date\n";
$month_name = date("F", mktime(0, 0, 0, 11, 10));
echo "\nमहीना = " . $month_name . "\n";
echo "\nअपडेटेड डेट प्रदर्शित हो रही है...\n";
echo date('Y-m-d', strtotime($date . ' + 20 days'));
?>
आउटपुट
डेट प्रदर्शित हो रही है...
डेट = 2019-11-11
महीना = November
अपडेटेड डेट प्रदर्शित हो रही है...
2019-12-01
विधि 2: DateTime::createFromFormat() (PHP 5.3+, अनुशंसित)
<?php
$val = DateTime::createFromFormat('!m', 12);
$month_name = $val->format('F');
echo "महीना = " . $month_name . "\n";
?>
आउटपुट
महीना = December
विधि 3: सरणी मैपिंग (सरल, कोई डेट फंक्शन नहीं)
<?php
$months = [
1 => 'January', 2 => 'February', 3 => 'March', 4 => 'April',
5 => 'May', 6 => 'June', 7 => 'July', 8 => 'August',
9 => 'September', 10 => 'October', 11 => 'November', 12 => 'December'
];
$month_num = 11;
echo $months[$month_num]; // November
?>
लोकेल-संवेदी महीना नाम
<?php
// हिंदी में महीना नाम
setlocale(LC_TIME, 'hi_IN.utf8');
echo strftime("%B", mktime(0,0,0,11,1)); // नवंबर
// या IntlDateFormatter (अधिक मजबूत)
$fmt = new IntlDateFormatter('hi_IN', IntlDateFormatter::FULL, IntlDateFormatter::NONE);
echo $fmt->format(mktime(0,0,0,11,1,2019)); // 1 नवंबर 2019
?>
सर्वोत्तम प्रथाएं
- सरल मामलों के लिए: **सरणी मैपिंग** (सबसे तेज़, कोई निर्भरता नहीं)।
- डेट ऑब्जेक्ट्स के साथ काम करने के लिए: **DateTime::createFromFormat('!m', $month)**।
- लोकेल/अंतर्राष्ट्रीयकरण के लिए: **IntlDateFormatter** (ICU लाइब्रेरी)।
date("F", mktime(...)) से बचें जब तक कि लेगेसी कोड के लिए आवश्यक न हो।