ホームページ >バックエンド開発 >PHPチュートリアル >PHPで義為年、易月、吉為日、沈時を表示する方法を教えてください。

PHPで義為年、易月、吉為日、沈時を表示する方法を教えてください。

WBOY
WBOYオリジナル
2016-06-23 13:25:321129ブラウズ

今日は 2015 年 9 月 30 日 水曜日 16:54:07 旧暦 2015-8-18 義偉年 易祐月 慈祐日 沈士です
PHP でこのように時刻を表示する方法を教えてください


返信ディスカッション (解決策)

Search php Lunar Calendar

<?php//PHP阳历到农历转换的一个类class Calendar{#农历每月的天数    var $everyCMonth=array(    0=>array(8,0,0,0,0,0,0,0,0,0,0,0,29,30,7,1),    1=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,8,2),    2=>array(0,30,29,30,29,29,30,29,30,29,30,30,30,0,9,3),    3=>array(5,29,30,29,30,29,29,30,29,29,30,30,29,30,10,4),    4=>array(0,30,30,29,30,29,29,30,29,29,30,30,29,0,1,5),    5=>array(0,30,30,29,30,30,29,29,30,29,30,29,30,0,2,6),    6=>array(4,29,30,30,29,30,29,30,29,30,29,30,29,30,3,7),    7=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,4,8),    8=>array(0,30,29,29,30,30,29,30,29,30,30,29,30,0,5,9),    9=>array(2,29,30,29,29,30,29,30,29,30,30,30,29,30,6,10),    10=>array(0,29,30,29,29,30,29,30,29,30,30,30,29,0,7,11),    11=>array(6,30,29,30,29,29,30,29,29,30,30,29,30,30,8,12),    12=>array(0,30,29,30,29,29,30,29,29,30,30,29,30,0,9,1),    13=>array(0,30,30,29,30,29,29,30,29,29,30,29,30,0,10,2),    14=>array(5,30,30,29,30,29,30,29,30,29,30,29,29,30,1,3),    15=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,2,4),    16=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,3,5),    17=>array(2,30,29,29,30,29,30,30,29,30,30,29,30,29,4,6),    18=>array(0,30,29,29,30,29,30,29,30,30,29,30,30,0,5,7),    19=>array(7,29,30,29,29,30,29,29,30,30,29,30,30,30,6,8),    20=>array(0,29,30,29,29,30,29,29,30,30,29,30,30,0,7,9),    21=>array(0,30,29,30,29,29,30,29,29,30,29,30,30,0,8,10),    22=>array(5,30,29,30,30,29,29,30,29,29,30,29,30,30,9,11),    23=>array(0,29,30,30,29,30,29,30,29,29,30,29,30,0,10,12),    24=>array(0,29,30,30,29,30,30,29,30,29,30,29,29,0,1,1),    25=>array(4,30,29,30,29,30,30,29,30,30,29,30,29,30,2,2),    26=>array(0,29,29,30,29,30,29,30,30,29,30,30,29,0,3,3),    27=>array(0,30,29,29,30,29,30,29,30,29,30,30,30,0,4,4),    28=>array(2,29,30,29,29,30,29,29,30,29,30,30,30,30,5,5),    29=>array(0,29,30,29,29,30,29,29,30,29,30,30,30,0,6,6),    30=>array(6,29,30,30,29,29,30,29,29,30,29,30,30,29,7,7),    31=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,8,8),    32=>array(0,30,30,30,29,30,29,30,29,29,30,29,30,0,9,9),    33=>array(5,29,30,30,29,30,30,29,30,29,30,29,29,30,10,10),    34=>array(0,29,30,29,30,30,29,30,29,30,30,29,30,0,1,11),    35=>array(0,29,29,30,29,30,29,30,30,29,30,30,29,0,2,12),    36=>array(3,30,29,29,30,29,29,30,30,29,30,30,30,29,3,1),    37=>array(0,30,29,29,30,29,29,30,29,30,30,30,29,0,4,2),    38=>array(7,30,30,29,29,30,29,29,30,29,30,30,29,30,5,3),    39=>array(0,30,30,29,29,30,29,29,30,29,30,29,30,0,6,4),    40=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,7,5),    41=>array(6,30,30,29,30,30,29,30,29,29,30,29,30,29,8,6),    42=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,9,7),    43=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,10,8),    44=>array(4,30,29,30,29,30,29,30,29,30,30,29,30,30,1,9),    45=>array(0,29,29,30,29,29,30,29,30,30,30,29,30,0,2,10),    46=>array(0,30,29,29,30,29,29,30,29,30,30,29,30,0,3,11),    47=>array(2,30,30,29,29,30,29,29,30,29,30,29,30,30,4,12),    48=>array(0,30,29,30,29,30,29,29,30,29,30,29,30,0,5,1),    49=>array(7,30,29,30,30,29,30,29,29,30,29,30,29,30,6,2),    50=>array(0,29,30,30,29,30,30,29,29,30,29,30,29,0,7,3),    51=>array(0,30,29,30,30,29,30,29,30,29,30,29,30,0,8,4),    52=>array(5,29,30,29,30,29,30,29,30,30,29,30,29,30,9,5),    53=>array(0,29,30,29,29,30,30,29,30,30,29,30,29,0,10,6),    54=>array(0,30,29,30,29,29,30,29,30,30,29,30,30,0,1,7),    55=>array(3,29,30,29,30,29,29,30,29,30,29,30,30,30,2,8),    56=>array(0,29,30,29,30,29,29,30,29,30,29,30,30,0,3,9),    57=>array(8,30,29,30,29,30,29,29,30,29,30,29,30,29,4,10),    58=>array(0,30,30,30,29,30,29,29,30,29,30,29,30,0,5,11),    59=>array(0,29,30,30,29,30,29,30,29,30,29,30,29,0,6,12),    60=>array(6,30,29,30,29,30,30,29,30,29,30,29,30,29,7,1),    61=>array(0,30,29,30,29,30,29,30,30,29,30,29,30,0,8,2),    62=>array(0,29,30,29,29,30,29,30,30,29,30,30,29,0,9,3),    63=>array(4,30,29,30,29,29,30,29,30,29,30,30,30,29,10,4),    64=>array(0,30,29,30,29,29,30,29,30,29,30,30,30,0,1,5),    65=>array(0,29,30,29,30,29,29,30,29,29,30,30,29,0,2,6),    66=>array(3,30,30,30,29,30,29,29,30,29,29,30,30,29,3,7),    67=>array(0,30,30,29,30,30,29,29,30,29,30,29,30,0,4,8),    68=>array(7,29,30,29,30,30,29,30,29,30,29,30,29,30,5,9),    69=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,6,10),    70=>array(0,30,29,29,30,29,30,30,29,30,30,29,30,0,7,11),    71=>array(5,29,30,29,29,30,29,30,29,30,30,30,29,30,8,12),    72=>array(0,29,30,29,29,30,29,30,29,30,30,29,30,0,9,1),    73=>array(0,30,29,30,29,29,30,29,29,30,30,29,30,0,10,2),    74=>array(4,30,30,29,30,29,29,30,29,29,30,30,29,30,1,3),    75=>array(0,30,30,29,30,29,29,30,29,29,30,29,30,0,2,4),    76=>array(8,30,30,29,30,29,30,29,30,29,29,30,29,30,3,5),    77=>array(0,30,29,30,30,29,30,29,30,29,30,29,29,0,4,6),    78=>array(0,30,29,30,30,29,30,30,29,30,29,30,29,0,5,7),    79=>array(6,30,29,29,30,29,30,30,29,30,30,29,30,29,6,8),    80=>array(0,30,29,29,30,29,30,29,30,30,29,30,30,0,7,9),    81=>array(0,29,30,29,29,30,29,29,30,30,29,30,30,0,8,10),    82=>array(4,30,29,30,29,29,30,29,29,30,29,30,30,30,9,11),    83=>array(0,30,29,30,29,29,30,29,29,30,29,30,30,0,10,12),    84=>array(10,30,29,30,30,29,29,30,29,29,30,29,30,30,1,1),    85=>array(0,29,30,30,29,30,29,30,29,29,30,29,30,0,2,2),    86=>array(0,29,30,30,29,30,30,29,30,29,30,29,29,0,3,3),    87=>array(6,30,29,30,29,30,30,29,30,30,29,30,29,29,4,4),    88=>array(0,30,29,30,29,30,29,30,30,29,30,30,29,0,5,5),    89=>array(0,30,29,29,30,29,29,30,30,29,30,30,30,0,6,6),    90=>array(5,29,30,29,29,30,29,29,30,29,30,30,30,30,7,7),    91=>array(0,29,30,29,29,30,29,29,30,29,30,30,30,0,8,8),    92=>array(0,29,30,30,29,29,30,29,29,30,29,30,30,0,9,9),    93=>array(3,29,30,30,29,30,29,30,29,29,30,29,30,29,10,10),    94=>array(0,30,30,30,29,30,29,30,29,29,30,29,30,0,1,11),    95=>array(8,29,30,30,29,30,29,30,30,29,29,30,29,30,2,12),    96=>array(0,29,30,29,30,30,29,30,29,30,30,29,29,0,3,1),    97=>array(0,30,29,30,29,30,29,30,30,29,30,30,29,0,4,2),    98=>array(5,30,29,29,30,29,29,30,30,29,30,30,29,30,5,3),    99=>array(0,30,29,29,30,29,29,30,29,30,30,30,29,0,6,4),    100=>array(0,30,30,29,29,30,29,29,30,29,30,30,29,0,7,5),    101=>array(4,30,30,29,30,29,30,29,29,30,29,30,29,30,8,6),    102=>array(0,30,30,29,30,29,30,29,29,30,29,30,29,0,9,7),    103=>array(0,30,30,29,30,30,29,30,29,29,30,29,30,0,10,8),    104=>array(2,29,30,29,30,30,29,30,29,30,29,30,29,30,1,9),    105=>array(0,29,30,29,30,29,30,30,29,30,29,30,29,0,2,10),    106=>array(7,30,29,30,29,30,29,30,29,30,30,29,30,30,3,11),    107=>array(0,29,29,30,29,29,30,29,30,30,30,29,30,0,4,12),    108=>array(0,30,29,29,30,29,29,30,29,30,30,29,30,0,5,1),    109=>array(5,30,30,29,29,30,29,29,30,29,30,29,30,30,6,2),    110=>array(0,30,29,30,29,30,29,29,30,29,30,29,30,0,7,3),    111=>array(0,30,29,30,30,29,30,29,29,30,29,30,29,0,8,4),    112=>array(4,30,29,30,30,29,30,29,30,29,30,29,30,29,9,5),    113=>array(0,30,29,30,29,30,30,29,30,29,30,29,30,0,10,6),    114=>array(9,29,30,29,30,29,30,29,30,30,29,30,29,30,1,7),    115=>array(0,29,30,29,29,30,29,30,30,30,29,30,29,0,2,8),    116=>array(0,30,29,30,29,29,30,29,30,30,29,30,30,0,3,9),    117=>array(6,29,30,29,30,29,29,30,29,30,29,30,30,30,4,10),    118=>array(0,29,30,29,30,29,29,30,29,30,29,30,30,0,5,11),    119=>array(0,30,29,30,29,30,29,29,30,29,29,30,30,0,6,12),    120=>array(4,29,30,30,30,29,30,29,29,30,29,30,29,30,7,1)    );###############################农历天干     var $mten=array("null","甲","乙","丙","丁","戊","己","庚","辛","壬","癸");    #农历地支    var $mtwelve=array("null","子(鼠)","丑(牛)","寅(虎)","卯(兔)","辰(龙)",                   "巳(蛇)","午(马)","未(羊)","申(猴)","酉(鸡)","戌(狗)","亥(猪)");    #农历月份    var $mmonth=array("闰","正","二","三","四","五","六",                  "七","八","九","十","十一","十二","月");    var $mday=array("null","初一","初二","初三","初四","初五","初六","初七","初八","初九","初十",                "十一","十二","十三","十四","十五","十六","十七","十八","十九","二十",                "廿一","廿二","廿三","廿四","廿五","廿六","廿七","廿八","廿九","三十");#农历日##############################

#赋给初值#天干地支    var $ten=0;    var $twelve=0;    function MyPub($cYear,$cMonth,$cDay)    {        $total=11;#阳历总天数 至1900年12月21日           $mtotal=0;#阴历总天数        for ($y=1901;$y<$cYear;$y++)        {            $total+=365;            if ($y%4==0) $total ++;        }        #再加当年的几个月        switch ($cMonth){                 case 12:                      $total+=30;                 case 11:                      $total+=31;                 case 10:                      $total+=30;                 case 9:                      $total+=31;                 case 8:                      $total+=31;                 case 7:                      $total+=30;                 case 6:                      $total+=31;                 case 5:                      $total+=30;                 case 4:                      $total+=31;                 case 3:                      $total+=28;                 case 2:                      $total+=31;               }             #如果当年是闰年还要加一天            if ($cYear%4==0 and $cMonth>2)            {                $total++;            }             $total+=$cDay-1;             ##############################            #用农历的天数累加来判断是否超过阳历的天数            $flag = 0;            for($j=0;$j<=120;$j++)            {                $i=1;                for($i=1;$i<=13;$i++)                {                    $mtotal+=$this->everyCMonth[$j][$i];                    if ($mtotal>=$total)                    {                        $flag=1;                        break;                    }                }                if ($flag==1)break;            }                    return array("m"=>$j,"d"=>$i,"t"=>$total,"n"=>$mtotal);    }    function Cal($Year,$Month,$Day)    {        $Par=$this->MyPub($Year,$Month,$Day);         $md=$this->everyCMonth[$Par["m"]][$Par["d"]]-($Par["n"]-$Par["t"]);        $week=($Par["t"]+5)%7;        if ($this->everyCMonth[$Par["m"]][0]<>0 and $this->everyCMonth[$Par["m"]][0]<$Par["d"])        {                $mm=$Par["d"]-1;        }else{                $mm=$Par["d"];        }        if ($Par["d"]==$this->everyCMonth[$Par["d"]][0]+1 and $this->everyCMonth[$Par["d"]][0]<>0)        {            $cMonth=$this->mmonth[0].$this->mmonth[$mm];#闰月        }else{            $cMonth=$this->mmonth[$mm].$this->mmonth[13];        }        return array("year"=>$this->mten[$this->everyCMonth[$Par["m"]][14]].$this->mtwelve[$this->everyCMonth[$Par["m"]][15]],                    "month"=>$cMonth,                    "day"=>$this->mday[$md],                    "week"=>$week);    }}/////调用$test=new Calendar;$Year=$test->Cal(2004,2,20);echo $Year["year"]."年".$Year["month"].$Year["day"]."周".$Year["week"];


参考までに、2 つのセクションを保存して実行してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。