آموزش تبدیل تاریخ شمسی به میلادی در PHP

پارامترهای تبدیل تاریخ شمسی به میلادی در زبان PHP
- پارامتر j_y نمایشگر سال هجری شمسی با 4 رقم است.
- پارامتر j_m در دستورات نشانگر ماه های سال هجری شمسی می باشد.
- از پارامتر j_d برای نشادن دادن روزهای سال هجری شمسی استفاده می شود.
- پارامتر mod یک پارامتر اختیاری برای نحوه نمایش فاصله دار اعداد به شکل Text-String می باشد.
مراحل تبدیل تاریخ شمسی به میلادی در PHP
هزاران روش برای تبدیل تاریخ شمسی به میلادی و یا برعکس وجود دارد. اما همان طور که در برخی از منابع رسمی در زبان PHP آمده است با وارد کردن کد زیر می توانید به راحتی این کار را انجام دهید. تنها کاری که باید به صورت پیش نیاز انجام دهید این است که ابتدا باید افزونه `php-intl` را نصب کرده و فعال کنید. سپس می توانید با استفاده از تابع `intlcal_from_date_time` کد زیر را وارد کنید و منتظر اتمام عملیات بمانید:phpfunction shamsi_to_miladi($year, $month, $day){$timestamp = jalali_to_gregorian($year, $month, $day);$date = date('Y-m-d', $timestamp);return $date;}function jalali_to_gregorian($jy, $jm, $jd){$gy = ($jy <= 979) ? 621: 1600;$jy -= ($jy <= 979) ? 0 : 979;$days = (365 * $jy) + (((int)($jy / 33) * 8) + (int)((($jy % 33) + 3) / 4)) + 78 + $jd + ( ($jm < 7) ? ($jm - 1) * 31 : (($jm - 7) * 30) + 186);$gy += 400 * (int)($days / 146097);$days %= 146097;$leap = 1;if ($days > 36524) {$days--;$gy += 100 * (int)($days / 36524);$days %= 36524;if ($days >= 365) {$days++;} else {$leap = 0;}}$gy += 4 * (int)($days / 1461);$days %= 1461;$gy += (int)(($days - 1) / 365);if ($days > 365) {$days = ($days - 1) % 365;} else {$leap = 0;}$gd = $days + 1;foreach (array(0, 31, (($leap) ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30) as $gm => $v) {if ($gd <= $v) {break}$gd -= $v;}return mktime(0, 0, 0, $gm + 1, $gd, $gy);}// Convert solar date 01/01/1400 to Gregorian date$shamsi_date = '1400-01-01';list($year, $month, $day) = explode('-', $shamsi_date);$miladi_date = shamsi_to_miladi($year, $month, $day);echo $miladi_date;

نکته مهم! در بسیاری از آموزش های تبدیل های تاریخی، به جای تقویم شمسی از عبارت تقویم جلالی استفاده شده است که در واقع یک مفهوم را می رسانند.