如何在PHP中将Hijri日期转换为格里高利?

Khu*_*ian 6 php date

我想把这个日期:09/13/1436(这是Hijiri)改为2015-06-30(格里高利).我试过了:

function HijriToJD($m, $d, $y){
   return (int)((11 * $y + 3) / 30) + 354 * $y + 
     30 * $m - (int)(($m - 1) / 2) + $d + 1948440 - 385;
}


$date = HijriToJD(09, 13, 1436);

echo jdtogregorian($date);
Run Code Online (Sandbox Code Playgroud)

当我编译时,我得到了10/7/2014.有人有什么想法?

Mar*_*ker 5

09作为月份传递是问题....具有前导零的数字在PHP中被视为八进制.09是八进制无效,所以它被视为一个0.

调用

$r=HijriToJD(9, 13, 1436);
Run Code Online (Sandbox Code Playgroud)

(没有月份的前导零)应该给你一个正确的结果