0

这个问题把我弄糊涂了。

Parse error: syntax error, unexpected '–' (T_STRING) in C:\xampp\htdocs\*****\*****\functions.php on line 187

下面代码框中的第 9 行的第 187 行。 $zjd = (int)((1461...

这是什么 ?

这个函数打印出回历,它依赖于月亮,它不同于它依赖于太阳的公历。Date();函数打印公历日期,没有任何回历日期的功能(也称为伊斯兰日历)。这两者之间是有区别的。例如,公历中的年份是 365.25,但回历日历中的年份是 354.367。还有几个月……等等。

发生了什么?

我做了一个函数将格里高利转换为回历,但它不是那么准确,所以我在网上搜索了一个。我找到了很多准确的,但都是用 JavaScript 编写的。并且刚刚发现这只是用 PHP 编写的精美作品。

我试图就这个问题联系作者,但他没有回应。于 2011 年发表此文。

部分功能

function hijriCal(){
$theDate     = getdate();
$wday        = $theDate['wday'];
$hr          = $theDate['mday'];
$theMonth    = $theDate['mon'];
$theYear     = $theDate['year'];

if (($theYear > 1582) || (($theYear == 1582) && ($theMonth > 10)) || (($theYear == 1582) && ($theMonth == 10) && ($hr > 14))) {
$zjd = (int)((1461 * ($theYear + 4800 + (int)(($theMonth – 14) / 12))) / 4) + (int)((367 * ($theMonth – 2 – 12 * ((int)(($theMonth – 14) / 12)))) / 12) – (int)((3 * (int)((($theYear + 4900 + (int)(($theMonth – 14) / 12)) / 100))) / 4) + $hr – 32075;
} else {
$zjd = 367 * $theYear – (int)((7 * ($theYear + 5001 + (int)(($theMonth – 9) / 7))) / 4) + (int)((275 * $theMonth) / 9) + $hr + 1729777;
}

提前致谢

4

1 回答 1

3
于 2013-03-13T02:47:11.447 回答