PHP阳历阴历互换,获取节气,获取干支纪年等修正版

2023-12-18 02:18

本文主要是介绍PHP阳历阴历互换,获取节气,获取干支纪年等修正版,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

网上找的demo发现里面是有问题的,修复了一下我发现的bug 

<?php/*** Created by PhpStorm.* User: 刘抱* Date: 2019/3/6* Time: 17:37*/
class Lunar
{public $MIN_YEAR = 1891;public $MAX_YEAR = 2100;public $lunarInfo = [[0, 2, 9, 21936], [6, 1, 30, 9656], [0, 2, 17, 9584], [0, 2, 6, 21168], [5, 1, 26, 43344], [0, 2, 13, 59728],[0, 2, 2, 27296], [3, 1, 22, 44368], [0, 2, 10, 43856], [8, 1, 30, 19304], [0, 2, 19, 19168], [0, 2, 8, 42352],[5, 1, 29, 21096], [0, 2, 16, 53856], [0, 2, 4, 55632], [4, 1, 25, 27304], [0, 2, 13, 22176], [0, 2, 2, 39632],[2, 1, 22, 19176], [0, 2, 10, 19168], [6, 1, 30, 42200], [0, 2, 18, 42192], [0, 2, 6, 53840], [5, 1, 26, 54568],[0, 2, 14, 46400], [0, 2, 3, 54944], [2, 1, 23, 38608], [0, 2, 11, 38320], [7, 2, 1, 18872], [0, 2, 20, 18800],[0, 2, 8, 42160], [5, 1, 28, 45656], [0, 2, 16, 27216], [0, 2, 5, 27968], [4, 1, 24, 44456], [0, 2, 13, 11104],[0, 2, 2, 38256], [2, 1, 23, 18808], [0, 2, 10, 18800], [6, 1, 30, 25776], [0, 2, 17, 54432], [0, 2, 6, 59984],[5, 1, 26, 27976], [0, 2, 14, 23248], [0, 2, 4, 11104], [3, 1, 24, 37744], [0, 2, 11, 37600], [7, 1, 31, 51560],[0, 2, 19, 51536], [0, 2, 8, 54432], [6, 1, 27, 55888], [0, 2, 15, 46416], [0, 2, 5, 22176], [4, 1, 25, 43736],[0, 2, 13, 9680], [0, 2, 2, 37584], [2, 1, 22, 51544], [0, 2, 10, 43344], [7, 1, 29, 46248], [0, 2, 17, 27808],[0, 2, 6, 46416], [5, 1, 27, 21928], [0, 2, 14, 19872], [0, 2, 3, 42416], [3, 1, 24, 21176], [0, 2, 12, 21168],[8, 1, 31, 43344], [0, 2, 18, 59728], [0, 2, 8, 27296], [6, 1, 28, 44368], [0, 2, 15, 43856], [0, 2, 5, 19296],[4, 1, 25, 42352], [0, 2, 13, 42352], [0, 2, 2, 21088], [3, 1, 21, 59696], [0, 2, 9, 55632], [7, 1, 30, 23208],[0, 2, 17, 22176], [0, 2, 6, 38608], [5, 1, 27, 19176], [0, 2, 15, 19152], [0, 2, 3, 42192], [4, 1, 23, 53864],[0, 2, 11, 53840], [8, 1, 31, 54568], [0, 2, 18, 46400], [0, 2, 7, 46752], [6, 1, 28, 38608], [0, 2, 16, 38320],[0, 2, 5, 18864], [4, 1, 25, 42168], [0, 2, 13, 42160], [10, 2, 2, 45656], [0, 2, 20, 27216], [0, 2, 9, 27968],[6, 1, 29, 44448], [0, 2, 17, 43872], [0, 2, 6, 38256], [5, 1, 27, 18808], [0, 2, 15, 18800], [0, 2, 4, 25776],[3, 1, 23, 27216], [0, 2, 10, 59984], [8, 1, 31, 27432], [0, 2, 19, 23232], [0, 2, 7, 43872], [5, 1, 28, 37736],[0, 2, 16, 37600], [0, 2, 5, 51552], [4, 1, 24, 54440], [0, 2, 12, 54432], [0, 2, 1, 55888], [2, 1, 22, 23208],[0, 2, 9, 22176], [7, 1, 29, 43736], [0, 2, 18, 9680], [0, 2, 7, 37584], [5, 1, 26, 51544], [0, 2, 14, 43344],[0, 2, 3, 46240], [4, 1, 23, 46416], [0, 2, 10, 44368], [9, 1, 31, 21928], [0, 2, 19, 19360], [0, 2, 8, 42416],[6, 1, 28, 21176], [0, 2, 16, 21168], [0, 2, 5, 43312], [4, 1, 25, 29864], [0, 2, 12, 27296], [0, 2, 1, 44368],[2, 1, 22, 19880], [0, 2, 10, 19296], [6, 1, 29, 42352], [0, 2, 17, 42208], [0, 2, 6, 53856], [5, 1, 26, 59696],[0, 2, 13, 54576], [0, 2, 3, 23200], [3, 1, 23, 27472], [0, 2, 11, 38608], [11, 1, 31, 19176], [0, 2, 19, 19152],[0, 2, 8, 42192], [6, 1, 28, 53848], [0, 2, 15, 53840], [0, 2, 4, 54560], [5, 1, 24, 55968], [0, 2, 12, 46496],[0, 2, 1, 22224], [2, 1, 22, 19160], [0, 2, 10, 18864], [7, 1, 30, 42168], [0, 2, 17, 42160], [0, 2, 6, 43600],[5, 1, 26, 46376], [0, 2, 14, 27936], [0, 2, 2, 44448], [3, 1, 23, 21936], [0, 2, 11, 37744], [8, 2, 1, 18808],[0, 2, 19, 18800], [0, 2, 8, 25776], [6, 1, 28, 27216], [0, 2, 15, 59984], [0, 2, 4, 27424], [4, 1, 24, 43872],[0, 2, 12, 43744], [0, 2, 2, 37600], [3, 1, 21, 51568], [0, 2, 9, 51552], [7, 1, 29, 54440], [0, 2, 17, 54432],[0, 2, 5, 55888], [5, 1, 26, 23208], [0, 2, 14, 22176], [0, 2, 3, 42704], [4, 1, 23, 21224], [0, 2, 11, 21200],[8, 1, 31, 43352], [0, 2, 19, 43344], [0, 2, 7, 46240], [6, 1, 27, 46416], [0, 2, 15, 44368], [0, 2, 5, 21920],[4, 1, 24, 42448], [0, 2, 12, 42416], [0, 2, 2, 21168], [3, 1, 22, 43320], [0, 2, 9, 26928], [7, 1, 29, 29336],[0, 2, 17, 27296], [0, 2, 6, 44368], [5, 1, 26, 19880], [0, 2, 14, 19296], [0, 2, 3, 42352], [4, 1, 24, 21104],[0, 2, 10, 53856], [8, 1, 30, 59696], [0, 2, 18, 54560], [0, 2, 7, 55968], [6, 1, 27, 27472], [0, 2, 15, 22224],[0, 2, 5, 19168], [4, 1, 25, 42216], [0, 2, 12, 42192], [0, 2, 1, 53584], [2, 1, 21, 55592], [0, 2, 9, 54560]];/*** 将阳历转换为阴历* @param $year 公历-年* @param $month 公历-月* @param $date 公历-日* @return array*/public function convertSolarToLunar($year, $month, $date){$yearData = $this->lunarInfo[$year - $this->MIN_YEAR];if ($year == $this->MIN_YEAR && $month <= 2 && $date <= 9) return [1891, '正月', '初一', '辛卯', 1, 1, '兔'];return $this->getLunarByBetween($year, $this->getDaysBetweenSolar($year, $month, $date, $yearData[1], $yearData[2]));}/*** 获取某年某月的所有阴历信息* @param $year* @param $month* @param $date* @return array*/public function convertSolarMonthToLunar($year, $month, $date){$yearData = $this->lunarInfo[$year - $this->MIN_YEAR];if ($year == $this->MIN_YEAR && $month <= 2 && $date <= 9) return [1891, '正月', '初一', '辛卯', 1, 1, '兔'];$month_days_ary = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31];$dd = $month_days_ary[intval($month - 1)];if ($this->isLeapYear($year) && $month == 2) $dd++;$lunar_ary = [];for ($i = 1; $i <= $dd; $i++) {$array = $this->getLunarByBetween($year, $this->getDaysBetweenSolar($year, $month, $i, $yearData[1], $yearData[2]));$array[] = $year . '-' . $month . '-' . $i;$lunar_ary[$i] = $array;}return $lunar_ary;}/*** 将阴历转换为阳历* @param $year 阴历-年* @param $month 阴历-月,闰月处理:例如如果当年闰五月,那么第二个五月就传六月,相当于阴历有13个月,只是有的时候第13个月的天数为0* @param $date 阴历-日* @return array*/public function convertLunarToSolar($year, $month, $date){$yearData = $this->lunarInfo[$year - $this->MIN_YEAR];$between = $this->getDaysBetweenLunar($year, $month, $date);$res = mktime(0, 0, 0, $yearData[1], $yearData[2], $year);$res = date('Y-m-d', $res + $between * 24 * 60 * 60);$day = explode('-', $res);$year = $day[0];$month = $day[1];$day = $day[2];return [$year, $month, $day];}/*** 判断是否是闰年* @param $year* @return bool*/public function isLeapYear($year){return (($year % 4 == 0 && $year % 100 != 0) || ($year % 400 == 0));}/*** 获取干支纪年* @param $year* @return string*/public function getLunarYearName($year){$sky = ['庚', '辛', '壬', '癸', '甲', '乙', '丙', '丁', '戊', '己'];$earth = ['申', '酉', '戌', '亥', '子', '丑', '寅', '卯', '辰', '巳', '午', '未'];$year = $year . '';return $sky[$year{3}] . $earth[$year % 12];}/*** 根据阴历年获取生肖* @param $year 阴历年* @return mixed*/public function getYearZodiac($year){$zodiac = ['猴', '鸡', '狗', '猪', '鼠', '牛', '虎', '兔', '龙', '蛇', '马', '羊'];return $zodiac[$year % 12];}/*** 获取阳历月份的天数* @param $year 阳历-年* @param $month 阳历-月* @return mixed*/public function getSolarMonthDays($year, $month){$monthHash = ['1' => 31, '2' => $this->isLeapYear($year) ? 29 : 28, '3' => 31, '4' => 30, '5' => 31, '6' => 30, '7' => 31, '8' => 31, '9' => 30, '10' => 31, '11' => 30, '12' => 31];return $monthHash["$month"];}/*** 获取阴历月份的天数* @param $year 阴历-年* @param $month 阴历-月,从一月开始* @return mixed*/public function getLunarMonthDays($year, $month){$monthData = $this->getLunarMonths($year);return $monthData[$month - 1];}/*** 获取阴历每月的天数的数组* @param $year* @return array*/public function getLunarMonths($year){$yearData = $this->lunarInfo[$year - $this->MIN_YEAR];$leapMonth = $yearData[0];$bit = decbin($yearData[3]);for ($i = 0; $i < strlen($bit); $i++) $bitArray[$i] = substr($bit, $i, 1);for ($k = 0, $klen = 16 - count($bitArray); $k < $klen; $k++) array_unshift($bitArray, '0');$bitArray = array_slice($bitArray, 0, ($leapMonth == 0 ? 12 : 13));for ($i = 0; $i < count($bitArray); $i++) $bitArray[$i] = $bitArray[$i] + 29;return $bitArray;}/*** 获取农历每年的天数* @param $year 农历年份* @return mixed*/public function getLunarYearDays($year){$yearData = $this->lunarInfo[$year - $this->MIN_YEAR];$monthArray = $this->getLunarYearMonths($year);$len = count($monthArray);return ($monthArray[$len - 1] == 0 ? $monthArray[$len - 2] : $monthArray[$len - 1]);}/*** @param $year* @return array*/public function getLunarYearMonths($year){$monthData = $this->getLunarMonths($year);$res = [];$temp = 0;$yearData = $this->lunarInfo[$year - $this->MIN_YEAR];$len = ($yearData[0] == 0 ? 12 : 13);for ($i = 0; $i < $len; $i++) {$temp = 0;for ($j = 0; $j <= $i; $j++) $temp += $monthData[$j];array_push($res, $temp);}return $res;}/*** 获取闰月* @param $year 阴历年份* @return mixed*/public function getLeapMonth($year){$yearData = $this->lunarInfo[$year - $this->MIN_YEAR];return $yearData[0];}/*** 计算阴历日期与正月初一相隔的天数* @param $year* @param $month* @param $date* @return int|mixed*/public function getDaysBetweenLunar($year, $month, $date){$yearMonth = $this->getLunarMonths($year);$res = 0;for ($i = 1; $i < $month; $i++) $res += $yearMonth[$i - 1];$res += $date - 1;return $res;}/*** 计算2个阳历日期之间的天数* @param $year 阳历年* @param $cmonth* @param $cdate* @param $dmonth* @param $ddate 阴历正月对应的阳历月份* @return float 阴历初一对应的阳历天数*/public function getDaysBetweenSolar($year, $cmonth, $cdate, $dmonth, $ddate){$a = mktime(0, 0, 0, $cmonth, $cdate, $year);$b = mktime(0, 0, 0, $dmonth, $ddate, $year);return ceil(($a - $b) / 24 / 3600);}/*** 根据距离正月初一的天数计算阴历日期* @param $year 阳历年* @param $between 天数* @return array*/public function getLunarByBetween($year, $between){$lunarArray = [];$yearMonth = [];$t = 0;$e = 0;$leapMonth = 0;$m = '';if ($between == 0) {array_push($lunarArray, $year, '正月', '初一');$t = 1;$e = 1;} else {$year = $between > 0 ? $year : ($year - 1);$yearMonth = $this->getLunarYearMonths($year);$leapMonth = $this->getLeapMonth($year);$between = $between > 0 ? $between : ($this->getLunarYearDays($year) + $between);for ($i = 0; $i < 13; $i++) {if ($between == $yearMonth[$i]) {$t = $i + 2;$e = 1;break;} else if ($between < $yearMonth[$i]) {$t = $i + 1;$e = $between - (empty($yearMonth[$i - 1]) ? 0 : $yearMonth[$i - 1]) + 1;break;}}$m = ($leapMonth != 0 && $t == $leapMonth + 1) ? ('闰' . $this->getCapitalNum($t - 1, true)) : $this->getCapitalNum(($leapMonth != 0 && $leapMonth + 1 < $t ? ($t - 1) : $t), true);array_push($lunarArray, $year, $m, $this->getCapitalNum($e, false));}array_push($lunarArray, $this->getLunarYearName($year));// 天干地支array_push($lunarArray, $t, $e);array_push($lunarArray, $this->getYearZodiac($year));// 12生肖array_push($lunarArray, $leapMonth);// 闰几月return $lunarArray;}/*** 获取数字的阴历叫法* @param $num 数字* @param $isMonth 是否是月份的数字* @return mixed|string*/public function getCapitalNum($num, $isMonth){$isMonth = $isMonth || false;$dateHash = ['0' => '', '1' => '一', '2' => '二', '3' => '三', '4' => '四', '5' => '五', '6' => '六', '7' => '七', '8' => '八', '9' => '九', '10' => '十 '];$monthHash = ['0' => '', '1' => '正月', '2' => '二月', '3' => '三月', '4' => '四月', '5' => '五月', '6' => '六月', '7' => '七月', '8' => '八月', '9' => '九月', '10' => '十月', '11' => '冬月', '12' => '腊月'];$res = '';if ($isMonth) $res = $monthHash[$num];else {if ($num <= 10) $res = '初' . $dateHash[$num];else if ($num > 10 && $num < 20) $res = '十' . $dateHash[$num - 10];else if ($num == 20) $res = "二十";else if ($num > 20 && $num < 30) $res = "廿" . $dateHash[$num - 20];else if ($num == 30) $res = "三十";}return $res;}/*** 节气通用算法* @param $_year* @param $month* @param $day* @return mixed|string*/public function getJieQi($_year, $month, $day){$year = substr($_year, -2) + 0;$coefficient = [[5.4055, 2019, -1],//小寒[20.12, 2082, 1],//大寒[3.87],//立春[18.74, 2026, -1],//雨水[5.63],//惊蛰[20.646, 2084, 1],//春分[4.81],//清明[20.1],//谷雨[5.52, 1911, 1],//立夏[21.04, 2008, 1],//小满[5.678, 1902, 1],//芒种[21.37, 1928, 1],//夏至[7.108, 2016, 1],//小暑[22.83, 1922, 1],//大暑[7.5, 2002, 1],//立秋[23.13],//处暑[7.646, 1927, 1],//白露[23.042, 1942, 1],//秋分[8.318],//寒露[23.438, 2089, 1],//霜降[7.438, 2089, 1],//立冬[22.36, 1978, 1],//小雪[7.18, 1954, 1],//大雪[21.94, 2021, -1]//冬至];$term_name = ["小寒", "大寒", "立春", "雨水", "惊蛰", "春分", "清明", "谷雨","立夏", "小满", "芒种", "夏至", "小暑", "大暑", "立秋", "处暑","白露", "秋分", "寒露", "霜降", "立冬", "小雪", "大雪", "冬至"];$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];if ($day == $day1) return $term_name[$idx1];if ($day == $day2) return $term_name[$idx1 + 1];return '';}/*** 获取节日:特殊的节日只能修改此函数来计算* @param $today* @param bool $nl_info* @param int $config* @return string*/public function getFestival($today, $nl_info = false, $config = 1){if ($config == 1) {$arr_lunar = ['01-01' => '春节', '01-15' => '元宵节', '02-02' => '二月二', '05-05' => '端午节', '07-07' => '七夕节', '08-15' => '中秋节', '09-09' => '重阳节', '12-08' => '腊八节', '12-23' => '小年'];$arr_solar = ['01-01' => '元旦', '02-14' => '情人节', '03-12' => '植树节', '04-01' => '愚人节', '05-01' => '劳动节', '06-01' => '儿童节', '10-01' => '国庆节', '10-31' => '万圣节', '12-24' => '平安夜', '12-25' => '圣诞节'];}//需要不同节日的,用不同的$config,然后配置$arr_lunar和$arr_solar$festivals = [];list($y, $m, $d) = explode('-', $today);if (!$nl_info) $nl_info = $this->convertSolarToLunar($y, intval($m), intval($d));if ($nl_info[7] > 0 && $nl_info[7] < $nl_info[4]) $nl_info[4] -= 1;$md_lunar = substr('0' . $nl_info[4], -2) . '-' . substr('0' . $nl_info[5], -2);$md_solar = substr_replace($today, '', 0, 5);isset($arr_lunar[$md_lunar]) ? array_push($festivals, $arr_lunar[$md_lunar]) : '';isset($arr_solar[$md_solar]) ? array_push($festivals, $arr_solar[$md_solar]) : '';$glweek = date("w", strtotime($today));  //0-6if ($m == 5 && ($d > 7) && ($d < 15) && ($glweek == 0)) array_push($festivals, "母亲节");if ($m == 6 && ($d > 14) && ($d < 22) && ($glweek == 0)) array_push($festivals, "父亲节");$jieqi = $this->getJieQi($y, $m, $d);if ($jieqi) array_push($festivals, $jieqi);return implode('/', $festivals);}
}$lunar = new Lunar();
$month = $lunar->convertSolarMonthToLunar(2019, 2, 28);
print_r($month);

demo结果:


Array
([1] => Array([0] => 2018[1] => 腊月[2] => 廿七[3] => 戊戌[4] => 12[5] => 27[6] => 狗[7] => 0[8] => 2019-2-1)[2] => Array([0] => 2018[1] => 腊月[2] => 廿八[3] => 戊戌[4] => 12[5] => 28[6] => 狗[7] => 0[8] => 2019-2-2)[3] => Array([0] => 2018[1] => 腊月[2] => 廿九[3] => 戊戌[4] => 12[5] => 29[6] => 狗[7] => 0[8] => 2019-2-3)[4] => Array([0] => 2018[1] => 腊月[2] => 三十[3] => 戊戌[4] => 12[5] => 30[6] => 狗[7] => 0[8] => 2019-2-4)[5] => Array([0] => 2019[1] => 正月[2] => 初一[3] => 己亥[4] => 1[5] => 1[6] => 猪[7] => 0[8] => 2019-2-5)[6] => Array([0] => 2019[1] => 正月[2] => 初二[3] => 己亥[4] => 1[5] => 2[6] => 猪[7] => 0[8] => 2019-2-6)[7] => Array([0] => 2019[1] => 正月[2] => 初三[3] => 己亥[4] => 1[5] => 3[6] => 猪[7] => 0[8] => 2019-2-7)[8] => Array([0] => 2019[1] => 正月[2] => 初四[3] => 己亥[4] => 1[5] => 4[6] => 猪[7] => 0[8] => 2019-2-8)[9] => Array([0] => 2019[1] => 正月[2] => 初五[3] => 己亥[4] => 1[5] => 5[6] => 猪[7] => 0[8] => 2019-2-9)[10] => Array([0] => 2019[1] => 正月[2] => 初六[3] => 己亥[4] => 1[5] => 6[6] => 猪[7] => 0[8] => 2019-2-10)[11] => Array([0] => 2019[1] => 正月[2] => 初七[3] => 己亥[4] => 1[5] => 7[6] => 猪[7] => 0[8] => 2019-2-11)[12] => Array([0] => 2019[1] => 正月[2] => 初八[3] => 己亥[4] => 1[5] => 8[6] => 猪[7] => 0[8] => 2019-2-12)[13] => Array([0] => 2019[1] => 正月[2] => 初九[3] => 己亥[4] => 1[5] => 9[6] => 猪[7] => 0[8] => 2019-2-13)[14] => Array([0] => 2019[1] => 正月[2] => 初十 [3] => 己亥[4] => 1[5] => 10[6] => 猪[7] => 0[8] => 2019-2-14)[15] => Array([0] => 2019[1] => 正月[2] => 十一[3] => 己亥[4] => 1[5] => 11[6] => 猪[7] => 0[8] => 2019-2-15)[16] => Array([0] => 2019[1] => 正月[2] => 十二[3] => 己亥[4] => 1[5] => 12[6] => 猪[7] => 0[8] => 2019-2-16)[17] => Array([0] => 2019[1] => 正月[2] => 十三[3] => 己亥[4] => 1[5] => 13[6] => 猪[7] => 0[8] => 2019-2-17)[18] => Array([0] => 2019[1] => 正月[2] => 十四[3] => 己亥[4] => 1[5] => 14[6] => 猪[7] => 0[8] => 2019-2-18)[19] => Array([0] => 2019[1] => 正月[2] => 十五[3] => 己亥[4] => 1[5] => 15[6] => 猪[7] => 0[8] => 2019-2-19)[20] => Array([0] => 2019[1] => 正月[2] => 十六[3] => 己亥[4] => 1[5] => 16[6] => 猪[7] => 0[8] => 2019-2-20)[21] => Array([0] => 2019[1] => 正月[2] => 十七[3] => 己亥[4] => 1[5] => 17[6] => 猪[7] => 0[8] => 2019-2-21)[22] => Array([0] => 2019[1] => 正月[2] => 十八[3] => 己亥[4] => 1[5] => 18[6] => 猪[7] => 0[8] => 2019-2-22)[23] => Array([0] => 2019[1] => 正月[2] => 十九[3] => 己亥[4] => 1[5] => 19[6] => 猪[7] => 0[8] => 2019-2-23)[24] => Array([0] => 2019[1] => 正月[2] => 二十[3] => 己亥[4] => 1[5] => 20[6] => 猪[7] => 0[8] => 2019-2-24)[25] => Array([0] => 2019[1] => 正月[2] => 廿一[3] => 己亥[4] => 1[5] => 21[6] => 猪[7] => 0[8] => 2019-2-25)[26] => Array([0] => 2019[1] => 正月[2] => 廿二[3] => 己亥[4] => 1[5] => 22[6] => 猪[7] => 0[8] => 2019-2-26)[27] => Array([0] => 2019[1] => 正月[2] => 廿三[3] => 己亥[4] => 1[5] => 23[6] => 猪[7] => 0[8] => 2019-2-27)[28] => Array([0] => 2019[1] => 正月[2] => 廿四[3] => 己亥[4] => 1[5] => 24[6] => 猪[7] => 0[8] => 2019-2-28))

 

这篇关于PHP阳历阴历互换,获取节气,获取干支纪年等修正版的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/506686

相关文章

Android Environment 获取的路径问题

1. 以获取 /System 路径为例 /*** Return root of the "system" partition holding the core Android OS.* Always present and mounted read-only.*/public static @NonNull File getRootDirectory() {return DIR_ANDR

PHP原理之内存管理中难懂的几个点

PHP的内存管理, 分为俩大部分, 第一部分是PHP自身的内存管理, 这部分主要的内容就是引用计数, 写时复制, 等等面向应用的层面的管理. 而第二部分就是今天我要介绍的, zend_alloc中描写的关于PHP自身的内存管理, 包括它是如何管理可用内存, 如何分配内存等. 另外, 为什么要写这个呢, 因为之前并没有任何资料来介绍PHP内存管理中使用的策略, 数据结构, 或者算法. 而在我们

JS和jQuery获取节点的兄弟,父级,子级元素

原文转自http://blog.csdn.net/duanshuyong/article/details/7562423 先说一下JS的获取方法,其要比JQUERY的方法麻烦很多,后面以JQUERY的方法作对比。 JS的方法会比JQUERY麻烦很多,主要则是因为FF浏览器,FF浏览器会把你的换行也当最DOM元素。 <div id="test"><div></div><div></div

php中json_decode()和json_encode()

1.json_decode() json_decode (PHP 5 >= 5.2.0, PECL json >= 1.2.0) json_decode — 对 JSON 格式的字符串进行编码 说明 mixed json_decode ( string $json [, bool $assoc ] ) 接受一个 JSON 格式的字符串并且把它转换为 PHP 变量 参数 json

如何将文件夹里的PHP代码放到一个文件里

find ./dir -name "*.php" -exec 'cat' {} \; > dir.out

PHP抓取网站图片脚本

方法一: <?phpheader("Content-type:image/jpeg"); class download_image{function read_url($str) { $file=fopen($str,"r");$result = ''; while(!feof($file)) { $result.=fgets($file,9999); } fclose($file); re

PHP防止SQL注入详解及防范

SQL 注入是PHP应用中最常见的漏洞之一。事实上令人惊奇的是,开发者要同时犯两个错误才会引发一个SQL注入漏洞。 一个是没有对输入的数据进行过滤(过滤输入),还有一个是没有对发送到数据库的数据进行转义(转义输出)。这两个重要的步骤缺一不可,需要同时加以特别关注以减少程序错误。 对于攻击者来说,进行SQL注入攻击需要思考和试验,对数据库方案进行有根有据的推理非常有必要(当然假设攻击者看不到你的

PHP防止SQL注入的方法(2)

如果用户输入的是直接插入到一个SQL语句中的查询,应用程序会很容易受到SQL注入,例如下面的例子: $unsafe_variable = $_POST['user_input'];mysql_query("INSERT INTO table (column) VALUES ('" . $unsafe_variable . "')"); 这是因为用户可以输入类似VALUE”); DROP TA

PHP防止SQL注入的方法(1)

(1)mysql_real_escape_string – 转义 SQL 语句中使用的字符串中的特殊字符,并考虑到连接的当前字符集 使用方法如下: $sql = "select count(*) as ctr from users where username ='".mysql_real_escape_string($username)."' and password='". mysql_r

Linux系统安装php开发环境

Linux系统centos6.5 PHP5.6 MySQL5.6 Nginx1.7 yum安装依赖库 yum install -y make cmake gcc gcc-c++ autoconf automake libpng-devel libjpeg-devel zlib libxml2-devel ncurses-devel bison \libtool-ltdl-devel li