
农历:{$lunarDate[‘lunar_date’]}
“;
// 输出生肖
$shengxiao = get_shengxiao($lunarDate[‘lunar_year’]);
echo ”
year’ => $lunarYear,
‘lunar_month’ => $lunarMonth,
‘lunar_day’ => $lunarDay,
];
}
/
获取生肖
@param int $lunarYear 农历年
@return string 生肖
/
function get_shengxiao($lunarYear)
{
$shengxiao = [‘鼠’, ‘牛’, ‘虎’, ‘兔’, ‘龙’, ‘蛇’, ‘马’, ‘羊’, ‘猴’, ‘鸡’, ‘狗’, ‘猪’];
// 计算生肖索引
$index = ($lunarYear – 4) % 12;
// 返回生肖
return $shengxiao[$index];
}
/
获取星座
@param string $date 日期
@return string 星座
/
function get_constellation($date)
{
// 获取星座范围
$constellations = [
‘白羊座’ => [’03-21′, ’04-19′],
‘金牛座’ => [’04-20′, ’05-20′],
‘双子座’ => [’05-21′, ’06-20′],
‘巨蟹座’ => [’06-21′, ’07-22′],
‘狮子座’ => [’07-23′, ’08-22′],
‘处女座’ => [’08-23′, ’09-22′],
‘天秤座’ => [’09-23′, ’10-22′],
‘天蝎座’ => [’10-23′, ’11-21′],
‘射手座’ => [’11-22′, ’12-21′],
‘摩羯座’ => [’12-22′, ’01-19′],
‘水瓶座’ => [’01-20′, ’02-18′],
‘双鱼座’ => [’02-19′, ’03-20′],
];
// 获取月份和天数$date);
// 循环星座范围
foreach ($constellations as $constellation => $range) {
list($startMonth, $startDay) = explode(‘-‘, $range[0]);
list($endMonth, $endDay) = explode(‘-‘, $range[1]);
// 判断日期是否在星座范围内
if (($month == $startMonth && $day >= $startDay) || ($month == $endMonth && $day <= $endDay)) {
return $constellation;
}
}
// 如果日期不在任何星座范围内,则返回空字符串
return ”;
}
/
获取干支
@param int $lunarYear 农历年
@param int $lunarMonth 农历月
@param int $lunarDay 农历日
@return string 干支
/
function get_ganzhi($lunarYear, $lunarMonth, $lunarDay)
{
// 天干
$tiangan = [‘甲’, ‘乙’, ‘丙’, ‘丁’, ‘戊’, ‘己’, ‘庚’, ‘辛’, ‘壬’, ‘癸’];
// 地支
$dizhi = [‘子’, ‘丑’, ‘寅’, ‘卯’, ‘辰’, ‘巳’, ‘午’, ‘未’, ‘申’, ‘酉’, ‘戌’, ‘亥’];
// 计算天干索引
$tianganIndex = ($lunarYear – 4) % 10;
// 计算地支索引
$dizhiIndex = ($lunarMonth – 1) % 12;
// 返回干支
return $tiangan[$tianganIndex] . $dizhi[$dizhiIndex];
}
?>