gpt4 book ai didi

javascript - 如何使用 PHP 将回历日期转换为公历日期?

转载 作者:太空宇宙 更新时间:2023-11-03 10:46:37 26 4
gpt4 key购买 nike

请帮帮我

如何使用 php 将回历日期转换为公历日期

如果您知道任何可以将回历转换为公历的日期选择器,请告诉我。

最佳答案

检查这个solution .在这里引用

<?php

class HijriCalendar
{
function monthName($i) // $i = 1..12
{
static $month = array(
"Muḥarram", "Safar", "Rabī‘ I", "Rabī‘ II",
"Jumādá I", "Jumādá II", "Rajab", "Sha‘bān",
"Ramaḍān", "Shawwāl", "Dhū al-Qa‘dah", "Dhū al-Ḥijjah"
);
return $month[$i-1];
}

function GregorianToHijri($time = null)
{
if ($time === null) $time = time();
$m = date('m', $time);
$d = date('d', $time);
$y = date('Y', $time);

return HijriCalendar::JDToHijri(
cal_to_jd(CAL_GREGORIAN, $m, $d, $y));
}

function HijriToGregorian($m, $d, $y)
{
return jd_to_cal(CAL_GREGORIAN,
HijriCalendar::HijriToJD($m, $d, $y));
}

# Julian Day Count To Hijri
function JDToHijri($jd)
{
$jd = $jd - 1948440 + 10632;
$n = (int)(($jd - 1) / 10631);
$jd = $jd - 10631 * $n + 354;
$j = ((int)((10985 - $jd) / 5316)) *
((int)(50 * $jd / 17719)) +
((int)($jd / 5670)) *
((int)(43 * $jd / 15238));
$jd = $jd - ((int)((30 - $j) / 15)) *
((int)((17719 * $j) / 50)) -
((int)($j / 16)) *
((int)((15238 * $j) / 43)) + 29;
$m = (int)(24 * $jd / 709);
$d = $jd - (int)(709 * $m / 24);
$y = 30*$n + $j - 30;

return array($m, $d, $y);
}

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

$hijri = HijriCalendar::GregorianToHijri( time() );
echo $hijri[1].'. '.HijriCalendar::monthName($hijri[0]).' '.$hijri[2];

?>

关于javascript - 如何使用 PHP 将回历日期转换为公历日期?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30865498/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com