php农历转公历怎么实现

php农历公历的实现方法:首先获取一个PHP日期时间操作类“Lunar”;然后将“Lunar”相关代码保存为“Lunar.class.php”文件;最后使用“convertLunarToSolar();”方法实现农历转公历即可。

php农历转公历怎么实现

推荐:《PHP教程》

PHP 农历-阳历转换

分享一个实用的PHP日期时间操作类,里面包括了公历-农历转换、转换成中文日期格式、计算农历相隔天数、根据阴历年获取生肖、获取阴历月份的天数、获取农历每年的天数、获取闰月、计算阴历日期与正月初一相隔的天数、计算2个公历(阳历)日期之间的天数、根据距离正月初一的天数计算阴历日期、获取天干地支纪年等,PHP日期操作类:Lunar.class.php代码如下:

lunarInfo[$year-$this->MIN_YEAR];        if($year==$this->MIN_YEAR&&$monthgetLunarByBetween($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&&$monthisLeapYear($year) && $month == 2) $dd++;        $lunar_ary = array();        for ($i = 1; $i getLunarByBetween($year,$this->getDaysBetweenSolar($year, $month, $i, $yearData[1], $yearData[2]));            $array[] = $year . '-' . $month . '-' . $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('庚','辛','壬','癸','甲','乙','丙','丁','戊','己');         $earth = array('申','酉','戌','亥','子','丑','寅','卯','辰','巳','午','未');         $year = $year.'';         return $sky[$year{3}].$earth[$year%12];    }    /**     * 根据阴历年获取生肖     * @param year 阴历年     */    function getYearZodiac($year){         $zodiac = array('猴','鸡','狗','猪','鼠','牛','虎','兔','龙','蛇','马','羊');         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('Y-m-d', $res+$between*24*60*60);        $day    = explode('-', $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('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 阴历-月,从一月开始     */    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 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;$ilunarInfo[$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;$i0? $year : ($year-1);            $yearMonth = $this->getLunarYearMonths($year);            $leapMonth = $this->getLeapMonth($year);            $between = $between>0?$between : ($this->getLunarYearDays($year)+$between);            for($i=0;$igetCapitalNum($t- 1,true)):$this->getCapitalNum(($leapMonth!=0&&$leapMonth+1toYear($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; }    /**     * 获取数字的阴历叫法     * @param num 数字     * @param isMonth 是否是月份的数字     */    function getCapitalNum($num,$isMonth){        $isMonth = $isMonth || false;        $dateHash=array('0'=>'','1'=>'一','2'=>'二','3'=>'三','4'=>'四','5'=>'五','6'=>'六','7'=>'七','8'=>'八','9'=>'九','10'=>'十 ');        $monthHash=array('0'=>'','1'=>'正月','2'=>'二月','3'=>'三月','4'=>'四月','5'=>'五月','6'=>'六月','7'=>'七月','8'=>'八月','9'=>'九月','10'=>'十月','11'=>'冬月','12'=>'腊月');        $res='';        if($isMonth){            $res = $monthHash[$num];        }else{            if($num10&&$num20&&$num

登录后复制

请将上面的代码保存为:Lunar.class.php,下面的例子将会调用这个文件,告诉你使用方法。

立即学习“PHP免费学习笔记(深入)”;

convertSolarToLunar(2014,2,12); //公历转农历$date = $lunar->getYearZodiac(2014,2,12); //根据阴历年获取生肖$date = $lunar->isLeapYear(2014,2,12); //判断闰年//其它功能也是这种调用方法print_r($date);//如果是农历转公历,代码如下:$date = $lunar->convertLunarToSolar(2014,2,12); //农历转公历print_r($date);?>

登录后复制

以上就是php农历转公历怎么实现的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2133279.html

(0)
上一篇 2025年2月24日 23:36:24
下一篇 2025年2月18日 11:41:41

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • PHP如何解决查询MySQL数据库中文乱码?

    PHP如何解决查询MySQL数据库中文乱码? 1、将MySQL数据库默认的编码是UTF-8; 2、在MySQL中创建表时,将字符集设置为UTF-8; 3、在PHP中查询数据之前,将数据库编码设置为UTF-8即可。 立即学习“PHP免费学习笔…

    2025年2月24日
    200
  • linux命令怎么安装php

    linux命令安装php的方法:首先从php的官方网站下载php的安装源码包;然后执行命令“./configure –prefix=/usr/local/servers/php”配置安装环境;接着在解压目录执行编译命令;最后执行…

    2025年2月24日 编程技术
    200
  • php出现上传找不到临时文件错误怎么办

    php上传找不到临时文件错误的解决办法:首先打开“php.ini”文件;然后将“upload_tmp_dir”项前面的分号去掉;接着在后面添加好路径如“C:/windows/temp”;最后加入网站匿名访问用户组的读写权限即可。 php上传…

    2025年2月24日
    200
  • PHP如何去掉特殊字符?

    PHP如何去掉特殊字符? 1、“trim()”函数可以去除字符串左右两边的空格和特殊字符; 2、“ltrim()”函数移除字符串左侧的空白字符或其他预定义字符; 3、“str_replace()”函数以其它字符替换字符串中的一些字符。 立即…

    2025年2月24日
    200
  • php如何删除指定key

    php删除指定key的方法:首先用“array_search”函数根据value去搜索;然后按key进行查找key对应的位置;最后使用自定义好的“array_remove”方法删除指定key即可。 PHP删除Array数组里指定的key(完…

    2025年2月24日
    200
  • php判断是几维数组

    php判断是几维数组的方法:首先获取需要进行判断的数组;然后使用自定义的“aL”方法实现判断数组是几维数组;最后通过“max($al)”方法获取数组的维度即可。 PHP 获取数组是几维数组   推荐:《PHP教程》 立即学习“PHP免费学习…

    2025年2月24日
    200
  • php如何将float转int?

    php如何将float转int? 1、使用函数“intval”将float类型数据转为int类型; $float = 15.222;intval($float); 登录后复制 2、使用“settype()”将float类型数据设置为int类…

    2025年2月24日
    200
  • PHP如何判断中文还是英文?

    PHP如何判断中文还是英文? 在PHP中可以使用正则来判断中文还是英文,判断英文的正则为“/^[^�-�]+$/”,判断中文正则为“/^[“.chr(0xa1).”-“.chr(0xff).”…

    2025年2月24日
    200
  • php中怎样根据关联数组的元素值删除元素

    php中根据关联数组的元素值删除元素的方法:可以通过array_diff()函数来进行删除。array_diff()函数用于比较两个(或多个)数组的值,并返回差集。具体方法如:【array_diff($array1, $array2)】。 …

    2025年2月24日
    200
  • PHP如何禁用函数?

    PHP如何禁用函数? PHP禁用函数的方法:首先打开“php.ini”配置文件;然后查找字符“disable_functions”,该字符是PHP禁用函数的配置项;接着在该配置项加上需要禁用的函数,多个函数用英文逗号分隔;最后保存重启即可。…

    2025年2月24日
    200

发表回复

登录后才能评论