根据日期查询节气:
function get_jie_qi() { $_year = 2023; $month = 5; $day = 21; $year = substr($_year, -2) + 0; $coefficient = array( array(5.4055, 2019, -1),//小寒 array(20.12, 2082, 1),//大寒 array(3.87),//立春 array(18.74, 2026, -1),//雨水 array(5.63),//惊蛰 array(20.646, 2084, 1),//春分 array(4.81),//清明 array(20.1),//谷雨 array(5.52, 1911, 1),//立夏 array(21.04, 2008, 1),//小满 array(5.678, 1902, 1),//芒种 array(21.37, 1928, 1),//夏至 array(7.108, 2016, 1),//小暑 array(22.83, 1922, 1),//大暑 array(7.5, 2002, 1),//立秋 array(23.13),//处暑 array(7.646, 1927, 1),//白露 array(23.042, 1942, 1),//秋分 array(8.318),//寒露 array(23.438, 2089, 1),//霜降 array(7.438, 2089, 1),//立冬 array(22.36, 1978, 1),//小雪 array(7.18, 1954, 1),//大雪 array(21.94, 2021, -1)//冬至 ); $term_name = array( "小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨", "立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑", "白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至"); $idx1 = ($month - 1) * 2; $_leap_value = floor(($year - 1) / 4); $day1 = floor($year * 0.2422 + $coefficient[$idx1][0]) - $_leap_value; if (isset($coefficient[$idx1][1]) && $coefficient[$idx1][1] == $_year) $day1 += $coefficient[$idx1][2]; $day2 = floor($year * 0.2422 + $coefficient[$idx1 + 1][0]) - $_leap_value; if (isset($coefficient[$idx1 + 1][1]) && $coefficient[$idx1 + 1][1] == $_year) $day1 += $coefficient[$idx1 + 1][2]; //echo __FILE__.'->'.__LINE__.' $day1='.$day1,',$day2='.$day2.'<br/>'.chr(10); $data = array(); if ($day < $day1) { $data['name1'] = $term_name[$idx1 - 1]; $data['name2'] = $term_name[$idx1 - 1] . '后'; } else if ($day == $day1) { $data['name1'] = $term_name[$idx1]; $data['name2'] = $term_name[$idx1]; } else if ($day > $day1 && $day < $day2) { $data['name1'] = $term_name[$idx1]; $data['name2'] = $term_name[$idx1] . '后'; } else if ($day == $day2) { $data['name1'] = $term_name[$idx1 + 1]; $data['name2'] = $term_name[$idx1 + 1]; } else if ($day > $day2) { $data['name1'] = $term_name[$idx1 + 1]; $data['name2'] = $term_name[$idx1 + 1] . '后'; } echo json_encode($data,JSON_UNESCAPED_UNICODE); }
输出:
{"name1": "小满","name2": "小满"}