English / Arabic       تلفن تهران : 66502340 و 66501375 | فکس : 66501326 | آدرس : تهران , ستارخان , خیابان شادمان , نبش کوچه گل افشان , پلاک 425 , واحد 2

php function to convert date from jalali to gregorian

نوشته شده توسط  وب هاستینگ دارکوب
رتبه بندی این آیتم
(2 نظر)

php function to convert date from jalali to gregorian

function jalali_to_gregorian($j_y, $j_m, $j_d)

{

$g_days_in_month = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);

$j_days_in_month = array(31, 31, 31, 31, 31, 31, 30, 30, 30, 30, 30, 29);

 

 

 

$jy = $j_y-979;

$jm = $j_m-1;

$jd = $j_d-1;

 

$j_day_no = 365*$jy + div($jy, 33)*8 + div($jy%33+3, 4);

for ($i=0; $i < $jm; ++$i)

$j_day_no += $j_days_in_month[$i];

 

$j_day_no += $jd;

 

$g_day_no = $j_day_no+79;

 

$gy = 1600 + 400*div($g_day_no, 146097); /* 146097 = 365*400 + 400/4 - 400/100 + 400/400 */

$g_day_no = $g_day_no % 146097;

 

$leap = true;

if ($g_day_no >= 36525) /* 36525 = 365*100 + 100/4 */

{

$g_day_no--;

$gy += 100*div($g_day_no,  36524); /* 36524 = 365*100 + 100/4 - 100/100 */

$g_day_no = $g_day_no % 36524;

 

if ($g_day_no >= 365)

$g_day_no++;

else

$leap = false;

}

 

$gy += 4*div($g_day_no, 1461); /* 1461 = 365*4 + 4/4 */

$g_day_no %= 1461;

 

if ($g_day_no >= 366) {

$leap = false;

 

$g_day_no--;

$gy += div($g_day_no, 365);

$g_day_no = $g_day_no % 365;

}

 

for ($i = 0; $g_day_no >= $g_days_in_month[$i] + ($i == 1 && $leap); $i++)

$g_day_no -= $g_days_in_month[$i] + ($i == 1 && $leap);

$gm = $i+1;

$gd = $g_day_no+1;

 

return array($gy, $gm, $gd);

}

 

 


ارسال نظر

لطفا فیلدهای اجباری را درج نمایید