首页 后端开发 php教程 php计算农历的实例代码

php计算农历的实例代码

Mar 08, 2018 am 09:08 AM
php 代码 实例

php如何实现计算农历,本文主要和大家分享php计算农历的实例代码,希望能帮助到大家。

<?php
class Lunar {
    var $MIN_YEAR = 1891;
    var $MAX_YEAR = 2100;
    var $lunarInfo = array(
        array(0,2,9,21936),array(6,1,30,9656),array(0,2,17,9584),array(0,2,6,21168),array(5,1,26,43344),array(0,2,13,59728),
        array(0,2,2,27296),array(3,1,22,44368),array(0,2,10,43856),array(8,1,30,19304),array(0,2,19,19168),array(0,2,8,42352),
        array(5,1,29,21096),array(0,2,16,53856),array(0,2,4,55632),array(4,1,25,27304),array(0,2,13,22176),array(0,2,2,39632),
        array(2,1,22,19176),array(0,2,10,19168),array(6,1,30,42200),array(0,2,18,42192),array(0,2,6,53840),array(5,1,26,54568),
        array(0,2,14,46400),array(0,2,3,54944),array(2,1,23,38608),array(0,2,11,38320),array(7,2,1,18872),array(0,2,20,18800),
        array(0,2,8,42160),array(5,1,28,45656),array(0,2,16,27216),array(0,2,5,27968),array(4,1,24,44456),array(0,2,13,11104),
        array(0,2,2,38256),array(2,1,23,18808),array(0,2,10,18800),array(6,1,30,25776),array(0,2,17,54432),array(0,2,6,59984),
        array(5,1,26,27976),array(0,2,14,23248),array(0,2,4,11104),array(3,1,24,37744),array(0,2,11,37600),array(7,1,31,51560),
        array(0,2,19,51536),array(0,2,8,54432),array(6,1,27,55888),array(0,2,15,46416),array(0,2,5,22176),array(4,1,25,43736),
        array(0,2,13,9680),array(0,2,2,37584),array(2,1,22,51544),array(0,2,10,43344),array(7,1,29,46248),array(0,2,17,27808),
        array(0,2,6,46416),array(5,1,27,21928),array(0,2,14,19872),array(0,2,3,42416),array(3,1,24,21176),array(0,2,12,21168),
        array(8,1,31,43344),array(0,2,18,59728),array(0,2,8,27296),array(6,1,28,44368),array(0,2,15,43856),array(0,2,5,19296),
        array(4,1,25,42352),array(0,2,13,42352),array(0,2,2,21088),array(3,1,21,59696),array(0,2,9,55632),array(7,1,30,23208),
        array(0,2,17,22176),array(0,2,6,38608),array(5,1,27,19176),array(0,2,15,19152),array(0,2,3,42192),array(4,1,23,53864),
        array(0,2,11,53840),array(8,1,31,54568),array(0,2,18,46400),array(0,2,7,46752),array(6,1,28,38608),array(0,2,16,38320),
        array(0,2,5,18864),array(4,1,25,42168),array(0,2,13,42160),array(10,2,2,45656),array(0,2,20,27216),array(0,2,9,27968),
        array(6,1,29,44448),array(0,2,17,43872),array(0,2,6,38256),array(5,1,27,18808),array(0,2,15,18800),array(0,2,4,25776),
        array(3,1,23,27216),array(0,2,10,59984),array(8,1,31,27432),array(0,2,19,23232),array(0,2,7,43872),array(5,1,28,37736),
        array(0,2,16,37600),array(0,2,5,51552),array(4,1,24,54440),array(0,2,12,54432),array(0,2,1,55888),array(2,1,22,23208),
        array(0,2,9,22176),array(7,1,29,43736),array(0,2,18,9680),array(0,2,7,37584),array(5,1,26,51544),array(0,2,14,43344),
        array(0,2,3,46240),array(4,1,23,46416),array(0,2,10,44368),array(9,1,31,21928),array(0,2,19,19360),array(0,2,8,42416),
        array(6,1,28,21176),array(0,2,16,21168),array(0,2,5,43312),array(4,1,25,29864),array(0,2,12,27296),array(0,2,1,44368),
        array(2,1,22,19880),array(0,2,10,19296),array(6,1,29,42352),array(0,2,17,42208),array(0,2,6,53856),array(5,1,26,59696),
        array(0,2,13,54576),array(0,2,3,23200),array(3,1,23,27472),array(0,2,11,38608),array(11,1,31,19176),array(0,2,19,19152),
        array(0,2,8,42192),array(6,1,28,53848),array(0,2,15,53840),array(0,2,4,54560),array(5,1,24,55968),array(0,2,12,46496),
        array(0,2,1,22224),array(2,1,22,19160),array(0,2,10,18864),array(7,1,30,42168),array(0,2,17,42160),array(0,2,6,43600),
        array(5,1,26,46376),array(0,2,14,27936),array(0,2,2,44448),array(3,1,23,21936),array(0,2,11,37744),array(8,2,1,18808),
        array(0,2,19,18800),array(0,2,8,25776),array(6,1,28,27216),array(0,2,15,59984),array(0,2,4,27424),array(4,1,24,43872),
        array(0,2,12,43744),array(0,2,2,37600),array(3,1,21,51568),array(0,2,9,51552),array(7,1,29,54440),array(0,2,17,54432),
        array(0,2,5,55888),array(5,1,26,23208),array(0,2,14,22176),array(0,2,3,42704),array(4,1,23,21224),array(0,2,11,21200),
        array(8,1,31,43352),array(0,2,19,43344),array(0,2,7,46240),array(6,1,27,46416),array(0,2,15,44368),array(0,2,5,21920),
        array(4,1,24,42448),array(0,2,12,42416),array(0,2,2,21168),array(3,1,22,43320),array(0,2,9,26928),array(7,1,29,29336),
        array(0,2,17,27296),array(0,2,6,44368),array(5,1,26,19880),array(0,2,14,19296),array(0,2,3,42352),array(4,1,24,21104),
        array(0,2,10,53856),array(8,1,30,59696),array(0,2,18,54560),array(0,2,7,55968),array(6,1,27,27472),array(0,2,15,22224),
        array(0,2,5,19168),array(4,1,25,42216),array(0,2,12,42192),array(0,2,1,53584),array(2,1,21,55592),array(0,2,9,54560)
    );
    /**
     * 将阳历转换为阴历
     * @param year 公历-年
     * @param month 公历-月
     * @param date 公历-日
     */
    function convertSolarToLunar($year,$month,$date){
        //debugger;
        $yearData = $this->lunarInfo[$year-$this->MIN_YEAR];
        if($year==$this->MIN_YEAR&&$month<=2&&$date<=9){
            return array(1891,&#39;正月&#39;,&#39;初一&#39;,&#39;辛卯&#39;,1,1,&#39;兔&#39;);
        }
     
        return $this->getLunarByBetween($year,$this->getDaysBetweenSolar($year,$month,$date,$yearData[1],$yearData[2]));
    }
    function convertSolarMonthToLunar($year,$month) {
        $yearData = $this->lunarInfo[$year-$this->MIN_YEAR];
        if($year==$this->MIN_YEAR&&$month<=2&&$date<=9){
            return array(1891,&#39;正月&#39;,&#39;初一&#39;,&#39;辛卯&#39;,1,1,&#39;兔&#39;);
        }
        $month_days_ary = array(31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31);
        $dd = $month_days_ary[$month];
        if($this->isLeapYear($year) && $month == 2) $dd++;
        $lunar_ary = array();
        for ($i = 1; $i < $dd; $i++) {
            $array = $this->getLunarByBetween($year,$this->getDaysBetweenSolar($year, $month, $i, $yearData[1], $yearData[2]));
            $array[] = $year . &#39;-&#39; . $month . &#39;-&#39; . $i;
            $lunar_ary[$i] = $array;
        }
        return $lunar_ary;
    }
    /**
     * 判断是否是闰年
     * @param year
     */
    function isLeapYear($year){
        return (($year%4==0 && $year%100 !=0) || ($year%400==0));
    }
    /**
     * 获取干支纪年
     * @param year
     */
    function getLunarYearName($year){
        $sky = array(&#39;庚&#39;,&#39;辛&#39;,&#39;壬&#39;,&#39;癸&#39;,&#39;甲&#39;,&#39;乙&#39;,&#39;丙&#39;,&#39;丁&#39;,&#39;戊&#39;,&#39;己&#39;);
        $earth = array(&#39;申&#39;,&#39;酉&#39;,&#39;戌&#39;,&#39;亥&#39;,&#39;子&#39;,&#39;丑&#39;,&#39;寅&#39;,&#39;卯&#39;,&#39;辰&#39;,&#39;巳&#39;,&#39;午&#39;,&#39;未&#39;);
        $year = $year.&#39;&#39;;
        return $sky[$year{3}].$earth[$year%12];
    }
    /**
     * 根据阴历年获取生肖
     * @param year 阴历年
     */
    function getYearZodiac($year){
        $zodiac = array(&#39;猴&#39;,&#39;鸡&#39;,&#39;狗&#39;,&#39;猪&#39;,&#39;鼠&#39;,&#39;牛&#39;,&#39;虎&#39;,&#39;兔&#39;,&#39;龙&#39;,&#39;蛇&#39;,&#39;马&#39;,&#39;羊&#39;);
        return $zodiac[$year%12];
    }
    /**
     * 将阴历转换为阳历
     * @param year 阴历-年
     * @param month 阴历-月,闰月处理:例如如果当年闰五月,那么第二个五月就传六月,相当于阴历有13个月,只是有的时候第13个月的天数为0
     * @param date 阴历-日
     */
    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(&#39;Y-m-d&#39;, $res+$between*24*60*60);
        $day    = explode(&#39;-&#39;, $res);
        $year    = $day[0];
        $month= $day[1];
        $day    = $day[2];
        return array($year, $month, $day);
    }
    /**
     * 获取阳历月份的天数
     * @param year 阳历-年
     * @param month 阳历-月
     */
    function getSolarMonthDays($year,$month){
        $monthHash = array(&#39;1&#39;=>31,&#39;2&#39;=>$this->isLeapYear($year)?29:28,&#39;3&#39;=>31,&#39;4&#39;=>30,&#39;5&#39;=>31,&#39;6&#39;=>30,&#39;7&#39;=>31,&#39;8&#39;=>31,&#39;9&#39;=>30,&#39;10&#39;=>31,&#39;11&#39;=>30,&#39;12&#39;=>31);
        return $monthHash["$month"];
    }
    /**
     * 获取阴历月份的天数
     * @param year 阴历-年
     * @param month 阴历-月,从一月开始
     */
    function getLunarMonthDays($year,$month){
        $monthData = $this->getLunarMonths($year);
        return $monthData[$month-1];
    }
    /**
     * 获取阴历每月的天数的数组
     * @param year
     */
    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, &#39;0&#39;);
        }
        $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 农历年份
     */
    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]);
    }
    function getLunarYearMonths($year){
        //debugger;
        $monthData = $this->getLunarMonths($year);
        $res=array();
        $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 阴历年份
     */
    function getLeapMonth($year){
        $yearData = $this->lunarInfo[$year-$this->MIN_YEAR];
        return $yearData[0];
    }
    /**
     * 计算阴历日期与正月初一相隔的天数
     * @param year
     * @param month
     * @param date
     */
    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 阴历初一对应的阳历天数
     */
    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 天数
     */
    function getLunarByBetween($year,$between){
        //debugger;
        $lunarArray = array();
        $yearMonth=array();
        $t=0;
        $e=0;
        $leapMonth=0;
        $m=&#39;&#39;;
        if($between==0){
            array_push($lunarArray, $year,&#39;正月&#39;,&#39;初一&#39;);
            $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)?(&#39;闰&#39;.$this->getCapitalNum($t- 1,true)):$this->getCapitalNum(($leapMonth!=0&&$leapMonth+1<$t?($t-1):$t),true);
            $my_year = $this->toYear($year);
            array_push($lunarArray,$my_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;
    }
    //转换成中文年份
    function toYear($year){
        $arr = array("零","一","二","三","四","五","六","七","八","九");
        $year_arr = str_split($year);
        $str = $arr[$year_arr[0]].$arr[$year_arr[1]].$arr[$year_arr[2]].$arr[$year_arr[3]];
        return $str;
    }
    
    //中文年份转换成数字
    function toNumber($str){
        $arr = array("零"=>&#39;0&#39;,"一"=>&#39;1&#39;,"二"=>&#39;2&#39;,"三"=>&#39;3&#39;,"四"=>&#39;4&#39;,"五"=>&#39;5&#39;,"六"=>&#39;6&#39;,"七"=>&#39;7&#39;,"八"=>&#39;8&#39;,"九"=>&#39;9&#39;);
        $year_arr =  preg_split(&#39;/(?<!^)(?!$)/u&#39;, $str );
        $str = $arr[$year_arr[0]].$arr[$year_arr[1]].$arr[$year_arr[2]].$arr[$year_arr[3]];
        return $str;
    }
    /**
     * 获取数字的阴历叫法
     * @param num 数字
     * @param isMonth 是否是月份的数字
     */
    function getCapitalNum($num,$isMonth){
        $isMonth = $isMonth || false;
        $dateHash=array(&#39;0&#39;=>&#39;&#39;,&#39;1&#39;=>&#39;一&#39;,&#39;2&#39;=>&#39;二&#39;,&#39;3&#39;=>&#39;三&#39;,&#39;4&#39;=>&#39;四&#39;,&#39;5&#39;=>&#39;五&#39;,&#39;6&#39;=>&#39;六&#39;,&#39;7&#39;=>&#39;七&#39;,&#39;8&#39;=>&#39;八&#39;,&#39;9&#39;=>&#39;九&#39;,&#39;10&#39;=>&#39;十 &#39;);
        $monthHash=array(&#39;0&#39;=>&#39;&#39;,&#39;1&#39;=>&#39;正月&#39;,&#39;2&#39;=>&#39;二月&#39;,&#39;3&#39;=>&#39;三月&#39;,&#39;4&#39;=>&#39;四月&#39;,&#39;5&#39;=>&#39;五月&#39;,&#39;6&#39;=>&#39;六月&#39;,&#39;7&#39;=>&#39;七月&#39;,&#39;8&#39;=>&#39;八月&#39;,&#39;9&#39;=>&#39;九月&#39;,&#39;10&#39;=>&#39;十月&#39;,&#39;11&#39;=>&#39;冬月&#39;,&#39;12&#39;=>&#39;腊月&#39;);
        $res=&#39;&#39;;
        if($isMonth){
            $res = $monthHash[$num];
        }else{
            if($num<=10){
                $res = &#39;初&#39;.$dateHash[$num];
            }else if($num>10&&$num<20){
                $res = &#39;十&#39;.$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;
    }
    
//     function test(){
//         $date = $this->convertSolarToLunar(2018,5,1); //公历转农历
//         var_dump($date);
          
// //         var_dump($this->toNumber($date[0]));exit;
//      var_dump(  count($this->getLunarMonths(2017)));exit;
// //         $date = $this->getYearZodiac(2014,2,12); //根据阴历年获取生肖
// //         var_dump($date);
// //         $date = $this->isLeapYear(2014,2,12); //判断闰年
// //         var_dump($date);
// //         //其它功能也是这种调用方法

// //         //如果是农历转公历,代码如下:
//         $date = $this->convertLunarToSolar(2017,15,16); //农历转公历
//         var_dump($date);
        
        
//     }
    
//     function check(){
//         $date = $this->convertLunarToSolar(2017,7,29); //农历转公历
//         var_dump($date);
//        $a= $this->lunarNextCycleYearForLeap(2017,7,29,1);//闰年
//        var_dump($a);

// //         $a= $this->lunarNextCycleYearForNormal(2017,2,29,9);//平年
// //                var_dump($a);
       
//        $date = $this->convertLunarToSolar(2025,7,29); //农历转公历
//        var_dump($date);
       
//     }
    
    /**
     * 计算农历按N个月重复是哪天,没有对应的天数继续按周期循环
     * e.g 农历2017年第10个月的5个月后是2018年第二个月
     *注意农历有闰月的年份会出现13个月 不能简单认为一年有12个月
     * 上述例子   传递 $year=2017,$month=10,$interval=5
     * 返回 array(3) { [0]=> int(2018) [1]=> int(9) [2]=> int(30) }  分别对应 年,月,日,月份如果包含闰月 同理顺延
     */
    function lunarNextCycleMonth($year,$month,$day,$interval=1){
        if($year>$this->MAX_YEAR){
            return false;//防止死循环;
        }
        for ($i=1;$i<=$interval;$i++){
            $month++;
            //计算此年最大月份,如果month比这个最大月份还大, 则轮为下年一月 ,即year+1,month=1
            $yearData = $this->lunarInfo[$year-$this->MIN_YEAR];
            $maxMonth = ($yearData[0]==0?12:13);
            if($month>$maxMonth){
                $year++;
                $month=1;
            }
        }
        
        $lunarMonthDays=$this->getLunarMonthDays($year,$month);
        //如果下个周期的月份没有对应的day,例如有些月份没有农历30号,则继续递归查找
        if($lunarMonthDays<$day){
           return  $this->lunarNextCycleMonth($year,$month,$day,$interval);
        }else{
           return array($year,$month,$day);
        }
       
    }
    
    /**
     * 闰月重复按N年专用
     * 计算农历按N年重复是哪天,没有对应的天数继续按周期循环,闰月一定是重复成闰月直到符合,例如农历2017年闰六月30号一定重复至有闰六月的年份并且含有30号
     * e.g 农历2017年第10个月的5个月后是2018年第二个月
     * 注意农历有闰月的年份会出现13个月 不能简单认为一年有12个月
     * 上述例子   传递 $year=2017,$month=10,$interval=5
     * 返回 array(3) { [0]=> int(2018) [1]=> int(9) [2]=> int(30) }  分别对应 年,月,日,月份如果包含闰月 同理顺延
     * 
     */
    function lunarNextCycleYearForLeap($year,$month,$day,$interval=1){
        if($year>$this->MAX_YEAR){
            return false;//防止死循环;
        }

        //首先判断要想的日期是否闰月的日期,leapMonth的下一个月是闰月,例如leapMonth=6 那么7就是闰六月,后面月份顺推一个月,leapMonth=0代表没闰月
        if($month==$this->getLeapMonth($year)+1){
            //闰月的日期
            while ($year<=$this->MAX_YEAR){
                $year=$year+$interval;
                //找到有相同闰月为止
                $yearData = $this->lunarInfo[$year-$this->MIN_YEAR];
                if($yearData[0]!=0){
                    if($yearData[0]+1==$month){//有相同闰月的年份
                        //查看这个年份的闰月是否符合day数也相同
                        $lunarMonthDays=$this->getLunarMonthDays($year,$month);
                        //如果下个周期的月份没有对应的day,例如有些月份没有农历30号,则继续递归查找
                        if($lunarMonthDays<$day){
                            return  $this->lunarNextCycleYearForLeap($year,$month,$day,$interval);
                        }else{
                            return array($year,$month,$day);
                        }
                    }
                }
              
            }
        }
        
        //2100年之后也找不到 返回没找到
        return false;
    }
    
    
    /**
     * 平月重复按N年专用
     * 计算农历按N年重复是哪天,没有对应的天数继续按周期循环,闰月一定是重复成闰月直到符合,例如农历2017年闰六月30号一定重复至有闰六月的年份并且含有30号
     * e.g 农历2017年第10个月的5个月后是2018年第二个月
     * 注意农历有闰月的年份会出现13个月 不能简单认为一年有12个月
     * 上述例子   传递 $year=2017,$month=10,$interval=5
     * 返回 array(3) { [0]=> int(2018) [1]=> int(9) [2]=> int(30) }  分别对应 年,月,日,月份如果包含闰月 同理顺延
     */
    function lunarNextCycleYearForNormal($year,$month,$day,$interval=1){
    
 
        //平月的日期
        //1.先找到对应是农历几月,由于有闰月的年份会从闰月开始后面的月份数+1,要取出剔除
        $leapMonth=$this->getLeapMonth($year);
        if($leapMonth>0){
            //此年有闰月
            if($month>$leapMonth){
                $month--;//有闰月并且月份在闰月之后的月份数要-1才是真正的农历月
            }
        }
       

        //2.下个周期年,同理看看是不是有闰月,从闰月开始后面的月份数+1才是平月真正的月份
        //此时month的值等于月份数,例如农历平7月,month=7
        $year=$year+$interval;//下个周期第几年
        $leapMonth=$this->getLeapMonth($year);
        if($leapMonth>0){
            //此年有闰月
            if($month>$leapMonth){
                $month++;//有闰月并且月份在闰月之后的月份数要+1才是真正的需要匹配的月份
            }
        }
        
        $lunarMonthDays=$this->getLunarMonthDays($year,$month);
        //如果下个周期的月份没有对应的day,例如有些月份没有农历30号,则继续递归查找
        if($lunarMonthDays<$day){
            return  $this->lunarNextCycleYearForNormal($year,$month,$day,$interval);
        }else{
            return array($year,$month,$day);
        }
         
    }
}
登录后复制

相关推荐:

计算农历的函数

PHP实现公历与农历间的互转换方法介绍

php下实现农历日历的代码_PHP教程

以上是php计算农历的实例代码的详细内容。更多信息请关注PHP中文网其他相关文章!

本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn

热AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover

AI Clothes Remover

用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool

Undress AI Tool

免费脱衣服图片

Clothoff.io

Clothoff.io

AI脱衣机

AI Hentai Generator

AI Hentai Generator

免费生成ai无尽的。

热门文章

R.E.P.O.能量晶体解释及其做什么(黄色晶体)
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.最佳图形设置
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O.如果您听不到任何人,如何修复音频
3 周前 By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25:如何解锁Myrise中的所有内容
4 周前 By 尊渡假赌尊渡假赌尊渡假赌

热工具

记事本++7.3.1

记事本++7.3.1

好用且免费的代码编辑器

SublimeText3汉化版

SublimeText3汉化版

中文版,非常好用

禅工作室 13.0.1

禅工作室 13.0.1

功能强大的PHP集成开发环境

Dreamweaver CS6

Dreamweaver CS6

视觉化网页开发工具

SublimeText3 Mac版

SublimeText3 Mac版

神级代码编辑软件(SublimeText3)

适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 适用于 Ubuntu 和 Debian 的 PHP 8.4 安装和升级指南 Dec 24, 2024 pm 04:42 PM

PHP 8.4 带来了多项新功能、安全性改进和性能改进,同时弃用和删除了大量功能。 本指南介绍了如何在 Ubuntu、Debian 或其衍生版本上安装 PHP 8.4 或升级到 PHP 8.4

CakePHP 日期和时间 CakePHP 日期和时间 Sep 10, 2024 pm 05:27 PM

为了在 cakephp4 中处理日期和时间,我们将使用可用的 FrozenTime 类。

讨论 CakePHP 讨论 CakePHP Sep 10, 2024 pm 05:28 PM

CakePHP 是 PHP 的开源框架。它的目的是使应用程序的开发、部署和维护变得更加容易。 CakePHP 基于类似 MVC 的架构,功能强大且易于掌握。模型、视图和控制器 gu

CakePHP 文件上传 CakePHP 文件上传 Sep 10, 2024 pm 05:27 PM

为了进行文件上传,我们将使用表单助手。这是文件上传的示例。

CakePHP 创建验证器 CakePHP 创建验证器 Sep 10, 2024 pm 05:26 PM

可以通过在控制器中添加以下两行来创建验证器。

如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 如何设置 Visual Studio Code (VS Code) 进行 PHP 开发 Dec 20, 2024 am 11:31 AM

Visual Studio Code,也称为 VS Code,是一个免费的源代码编辑器 - 或集成开发环境 (IDE) - 可用于所有主要操作系统。 VS Code 拥有针对多种编程语言的大量扩展,可以轻松编写

CakePHP 快速指南 CakePHP 快速指南 Sep 10, 2024 pm 05:27 PM

CakePHP 是一个开源MVC 框架。它使开发、部署和维护应用程序变得更加容易。 CakePHP 有许多库可以减少大多数常见任务的过载。

您如何在PHP中解析和处理HTML/XML? 您如何在PHP中解析和处理HTML/XML? Feb 07, 2025 am 11:57 AM

本教程演示了如何使用PHP有效地处理XML文档。 XML(可扩展的标记语言)是一种用于人类可读性和机器解析的多功能文本标记语言。它通常用于数据存储

See all articles