+ /**
+ * Converting Gregorian dates to Hijri dates.
+ *
+ * Based on a PHP-Nuke block by Sharjeel which is released under GNU/GPL license
+ *
+ * @link http://phpnuke.org/modules.php?name=News&file=article&sid=8234&mode=thread&order=0&thold=0
+ */
+ private static function tsToHijri ( $ts ) {
+ $year = substr( $ts, 0, 4 );
+ $month = substr( $ts, 4, 2 );
+ $day = substr( $ts, 6, 2 );
+
+ $zyr = $year;
+ $zd=$day;
+ $zm=$month;
+ $zy=$zyr;
+
+
+
+ if (($zy>1582)||(($zy==1582)&&($zm>10))||(($zy==1582)&&($zm==10)&&($zd>14)))
+ {
+
+
+ $zjd=(int)((1461*($zy + 4800 + (int)( ($zm-14) /12) ))/4) + (int)((367*($zm-2-12*((int)(($zm-14)/12))))/12)-(int)((3*(int)(( ($zy+4900+(int)(($zm-14)/12))/100)))/4)+$zd-32075;
+ }
+ else
+ {
+ $zjd = 367*$zy-(int)((7*($zy+5001+(int)(($zm-9)/7)))/4)+(int)((275*$zm)/9)+$zd+1729777;
+ }
+
+ $zl=$zjd-1948440+10632;
+ $zn=(int)(($zl-1)/10631);
+ $zl=$zl-10631*$zn+354;
+ $zj=((int)((10985-$zl)/5316))*((int)((50*$zl)/17719))+((int)($zl/5670))*((int)((43*$zl)/15238));
+ $zl=$zl-((int)((30-$zj)/15))*((int)((17719*$zj)/50))-((int)($zj/16))*((int)((15238*$zj)/43))+29;
+ $zm=(int)((24*$zl)/709);
+ $zd=$zl-(int)((709*$zm)/24);
+ $zy=30*$zn+$zj-30;
+
+ return array ($zy, $zm, $zd);
+ }