return array($jy, $jm, $jd);
}
+// Gregorian to Jalali Convertor, by farsiweb.info
+function j2g($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 + floor($jy/33)*8 + floor(($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*floor($g_day_no/146097);
+ $g_day_no = $g_day_no % 146097;
+ $leap = true;
+ if ($g_day_no >= 36525){
+ $g_day_no--;
+ $gy += 100*floor($g_day_no/36524);
+ $g_day_no = $g_day_no % 36524;
+ if ($g_day_no >= 365){
+ $g_day_no++;
+ }else{
+ $leap = false;
+ }
+ }
+ $gy += 4*floor($g_day_no/1461);
+ $g_day_no %= 1461;
+ if ($g_day_no >= 366){
+ $leap = false;
+ $g_day_no--;
+ $gy += floor($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);
+}
+
// Jalali UTF Calendar code by Omid Mottaghi
function calendar_jalali_utf($format, $timestamp) {