PHP显示日期、周几、农历初几、什么节日函数编程代码
<?
function rili($style,$Atime){
$debug = false;
$glmonth = date("n",$Atime); //1-12
$glday = date("j",$Atime); //1-31
$glweek = date("w",$Atime); //0-6
$glyear = date("Y",$Atime); //
if( $glweek==0 || $glweek==6 ){
$bgcolor="#ff5555";
$fontcolor="yellow";
}else{
$bgcolor="#66ccff";
$fontcolor="black";
}
$chday=explode(" ","星期日 星期一 星期二 星期三 星期四 星期五 星期六");
$chnum=explode(" ","一 二 三 四 五 六 七 八 九 十");
//$isBig=explode(" ","大 小");
$dayName = explode(" ","初一 初二 初三 初四 初五 初六 初七 初八 初九 初十 十一 十二 十三 十四 十五 十六 十七 十八 十九 二十 廿一 廿二 廿三 廿四 廿五 廿六 廿七 廿八 廿九 三十");
$date = mktime(0,0,0,2,5,2000); //从庚辰年春节算起
$K = floor(($Atime - date("U",$date) )/86400 );
//
//$daypyear = array(354,384,354,355,384,355);
$skydry = explode(" ","甲 乙 丙 丁 戊 已 庚 辛 壬 癸");
$groundbranch = explode(" ","子 丑 寅 卯 辰 巳 午 未 申 酉 戌 亥");
$nongmonth = explode(" ","正月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 腊月");
for($i=0;$i < 60;$i++)
{
$yearName[] = $skydry[($i + 6 )%10].$groundbranch[($i + 4)%12]."年";
}
//$yearName = explode(" ","庚辰年 辛巳年 壬午年 癸未年 甲申年 乙酉年 丙戌年 丁亥年");
$adaypmonth = array(
explode(" ","30 30 29 29 30 29 29 30 29 30 30 29" ), //庚辰年 00
explode(" ","30 30 29 30 -29 30 29 29 30 29 30 29 30" ), //辛巳年 01
explode(" ","30 30 29 30 29 30 29 29 30 29 30 29" ), //壬午年 02
explode(" ","30 30 29 30 30 29 30 29 29 30 29 30" ), //癸未年 03
explode(" ","29 30 -29 30 30 29 30 29 30 29 30 29 30" ), //甲申年 04
explode(" ","29 30 29 30 29 30 30 29 30 29 30 29" ), //乙酉年 05
explode(" ","30 29 30 29 30 29 30 29 -30 30 29 30 30" ), //丙戌年 06
explode(" ","29 29 30 29 29 30 29 30 30 30 29 30" ), //丁亥年 07
explode(" ","30 29 29 30 29 29 30 29 30 30 29 30" ) //戊子年 08
);
if($debug)print_r($adaypmonth);
while(list($i,$j) = each($adaypmonth))
{
//$daypyear[$i] = array_sum($j);
$p=0;
while(list($m,$n) = each($j))
{
if($n>0)
{
$amname[$i][$m] = $nongmonth[$p];
$p++;
$daypyear[$i] += $n;
}else
{
$amname[$i][$m] = "闰".$nongmonth[$p];
$daypyear[$i] -= $n;
}
if($n == 29 || $n == -29)
{
$amname[$i][$m] = $amname[$i][$m]."小";
}else
{
$amname[$i][$m] = $amname[$i][$m]."大";
}
}
}
/*
$amname = array(
"正月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 腊月", //00
"正月 二月 三月 四月 闰四月 五月 六月 七月 八月 九月 十月 十一月 腊月", //01
"正月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 腊月", //02
"正月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 腊月", //03
"正月 二月 闰二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 腊月", //04
"正月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 腊月", //05
"正月 二月 三月 四月 五月 六月 七月 八月 闰八月 九月 十月 十一月 腊月", //06
"正月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 腊月", //07
"正月 二月 三月 四月 五月 六月 七月 八月 九月 十月 十一月 腊月", //08
);
*/
//
$yearnum = 0;
while($K >= $daypyear[$yearnum]){
// echo "K=$K yearnum=$yearnum daypyear=${daypyear[$yearnum]}\n";
$K-=$daypyear[$yearnum++];
}
if($debug)echo "K:".$K;
$year = $yearName[$yearnum];
$month = $adaypmonth[$yearnum];
//$mName = explode(" ",$amname[$yearnum]);
$mName = $amname[$yearnum];
$i=0;
while($K >= $month[$i])$K -= abs($month[$i++]);
/*
if($month[$i]==29)$l=$isBig[1];
else $l=$isBig[0]; //大小月
*/
// year 农历的年份
// i,nlmonth 农历的月数 数组序号0-12(11)
// K,nlday 农历的天数 0-29(28)
$nlmonth = $i;
$nlday = $K+1;$JR1 = ""; //公历节日
//固定节日
$gljr = array(
101=>"元旦",
202=>"世界湿地日(1996)",
214=>"情人节",
303=>"全国爱耳日",
308=>"妇女节(1910)",
312=>"植树节(1979)",
315=>"国际消费者权益日",
320=>"世界睡眠日",
325=>"世界气象日",
401=>"愚人节",
407=>"世界卫生日",
501=>"国际劳动节",
504=>"中国青年节",
508=>"世界红十字日",
512=>"国际护士节",
519=>"全国助残日",
601=>"国际儿童节",
605=>"世界环境日",
622=>"中国儿童慈善活动日",
623=>"国际奥林匹克日",
707=>"中国人民抗日战争纪念日",
801=>"中国人民解放军建军(1927)",
903=>"抗日战争胜利纪念日(1945)",
908=>"国际扫盲日",
910=>"教师节",
916=>"世界臭氧层保护日",
918=>"九?一八纪念日",
927=>"世界旅游日",
929=>"国际聋人节",
1001=>"中华人民共和国成立",
1014=>"世界标准日",
1024=>"联合国日",
1205=>"国际志愿人员日",
1229=>"12.9运动纪念日",
1225=>"圣诞节"
);
if(isset($gljr[$glmonth*100+$glday])) $JR1.2881064151=$gljr[$glmonth*100+$glday];
//不固定节日
//及
$JR="";
switch($glmonth){
case 1:
switch($glday){
case 1:
$bgcolor="#ff5555"; //元旦
$fontcolor="yellow";
break;
}
break;
case 5:
switch($glday){
case 1:
$bgcolor="#ff5555"; //五一
$fontcolor="yellow";
break;
}
if(($glday>7)&&($glday<15)&&($glweek==0))$JR.="母亲节";
break;
case 6:
if(($glday>14)&&($glday<22)&&($glweek==0))$JR.="父亲节";
break;
case 9:
switch($glday){
case 18:
$bgcolor="#666666"; //9.18
$fontcolor="#ffffff";
break;
}
break;
case 10:
switch(date("j",$Atime)){
case 1:
$bgcolor="#ff5555"; //国庆
$fontcolor="yellow";
$JR.=(date("Y",$Atime)-1949)."周年";break;
}
break;
}
if(strlen($JR)>1)$JR2=$JR;
$JR="";
$JR3="";
//固定农历节日
//*********农历节日
//K为日减一
switch(substr($mName[$i],0,-2)){
case "正月":
switch($nlday){
case 1:
$bgcolor="#ff5555"; //
$fontcolor="yellow";
$JR3.="春节";break;
case 15:
$JR3.="元宵节";break;
}
break;
case "二月":
switch($nlday){
case 2:
$JR3.="龙抬头";break;
}
break;
case "三月":
break;
case "四月":
break;
case "五月":
switch($nlday){
case 5:
$JR3.="端午节";break;
}
break;
case "六月":
break;
case "七月":
switch($nlday){
case 7:
$JR3.="七夕";break;
}
break;
case "八月":
switch($nlday){
case 15:
$bgcolor="#ff5555"; //
$fontcolor="yellow";
$JR3.="中秋节";break;
}
break;
case "九月":
switch($nlday){
case 9:
$JR3.="重阳节";break;
}
break;
case "十月":
break;
case "十一月":
break;
case "腊月":
switch($nlday){
case 8:
$JR3.="腊八";break;
case 25:
$JR3.="小年";break;
}
if(($nlday==30)||(($nlday==29)&&(substr($mName[$i],-2)==="小"))){
$bgcolor="#ff5555"; //
$fontcolor="yellow";
$JR3.="除夕";
}
break;
}
//24节气
$nl24j[2002] = array(
105=>"小寒",
120=>"大寒",
204=>"立春",
219=>"雨水",
306=>"惊蛰",
321=>"春分",
405=>"清明",
420=>"谷雨",
506=>"立夏",
521=>"小满",
606=>"芒种",
621=>"夏至",
707=>"小暑",
723=>"大暑",
808=>"立秋",
823=>"处暑",
908=>"白露",
923=>"秋分",
1008=>"寒露",
1023=>"霜降",
1107=>"立冬",
1122=>"小雪",
1207=>"大雪",
1222=>"冬至"
);
$nl24j[2003] = array(
106=>"小寒",
120=>"大寒",
204=>"立春",
219=>"雨水",
306=>"惊蛰",
321=>"春分",
405=>"清明",
420=>"谷雨",
506=>"立夏",
521=>"小满",
606=>"芒种",
622=>"夏至",
707=>"小暑",
723=>"大暑",
808=>"立秋",
823=>"处暑",
908=>"白露",
923=>"秋分",
1009=>"寒露",
1024=>"霜降",
1108=>"立冬",
1123=>"小雪",
1207=>"大雪",
1222=>"冬至"
);
$nl24j[2004] = array(
106=>"小寒",
121=>"大寒",
204=>"立春",
219=>"雨水",
305=>"惊蛰",
320=>"春分",
402=>"清明",
420=>"谷雨",
505=>"立夏",
521=>"小满",
605=>"芒种",
621=>"夏至",
707=>"小暑",
722=>"大暑",
807=>"立秋",
823=>"处暑",
907=>"白露",
923=>"秋分",
1008=>"寒露",
1023=>"霜降",
1107=>"立冬",
1122=>"小雪",
1207=>"大雪",
1221=>"冬至"
);
if(isset($gl24j[$glyear][$glmonth*100+$glday])) $JR4.=$gl24j[$glyear][$glmonth*100+$glday];
if($style=="1"){ 288064151
$str = "<nobr>".date("Y年n月j日",$Atime).$chday[date("w",$Atime)]."</nobr><BR>";
$str .="<nobr>农历".$year."".$mName[$i]."".$dayName[$K]."</nobr>";
if(strlen("$JR1 $JR2 $JR3 $JR4")>3)$str .="<BR>$JR1 $JR2 $JR3 $JR4";
}else{
$str = "".date("Y年",$Atime)."<br>".date("n月j日",$Atime)."<br>".$chday[date("w",$Atime)]."<BR>";
$str .="农历".$year."<br>".$mName[$i]."".$dayName[$K];
if(strlen($JR1)>1)$str.="<BR>$JR1";
if(strlen($JR2)>1)$str.="<BR>$JR2";
if(strlen($JR3)>1)$str.="<BR>$JR3";
if(strlen($JR4)>1)$str.="<BR>$JR4";
}
//***************************/
echo "<table border=0><tr><td align='center' valign='center'";
echo ' bgcolor="';
echo $bgcolor.'"';
echo "><font style='font-size:9pt;line-height: 150%' color=$fontcolor>$str $JR";
echo "</font></td></tr></table>";
} //end function rili
?>
函数描述及例子
<?
rili("1",time()-3600*24);
?>
显示结果:
2009年
1月3日
星期六
农历戊子年
腊月大初八
腊八
PHP显示日期、周几、农历初几、什么节日函数编程代码的更多相关文章
- Java 实现输入公历日期输出农历日期、生肖、天干地支、节日、节气等信息
最近的工作中客户要求前台页面展示日历,日历内容包括:农历年月日日.公历年月日.生肖.天干地支.农历节日.公历节日.24节气等信息,之前在网上查找资料关于Java实现方面的文章不少,但是大多数针对节气. ...
- 显示日期的指令: date
1.显示日期的指令: date (1)参数: (2)实例
- IOS 将公历日期转换为中国农历
代码方法: //日期阳历转换为农历: - (NSString *)convertDateToNongLi:(NSString *)aStrDate { NSDate *dateTemp = nil; ...
- LaTeX去掉默认显示日期时间
LaTeX去掉默认显示日期时间: \date{}
- Easyui datebox单击文本框显示日期选择
Easyui默认是点击文本框后面的图标显示日期,为了更进一步优化体验 修改为单击文本框显示日期选择框 修改jquery.easyui.min.js(作者用的是1.3.6版本,其他版本或有区别) 可 c ...
- asp 之 让实体中字段类型为DateTime的字段仅仅显示日期不显示时间
在我们平时的工作开发中.我们一般会遇到这种一个问题:某个实体的某个字段是DateTime类型的,但是我们在界面上仅仅想让它显示日期不显示时间! 一个订单实体: //订单类 public ...
- Easyui datebox单击文本框显示日期选择 eayui版本1.5.4.1
Easyui默认是点击文本框后面的图标显示日期,体验很不好,所以我想单击文本框就显示日期选择框,网上很多版本是1.3,1.4的,于是自己就比葫芦画瓢改了一个1.5.4.1的版本. 我参考了网上这个帖子 ...
- 工作总结 @Html.EditorFor @Html.TextBoxFor 表达式树 绑定显示日期格式数据
页面显示 不出来 没有 这个input ............. 换成 @Html.TextBoxFor input 出来了 这是 为什么呢 ? 用@Html.TextBox 也可以出来 为什么 @ ...
- 在页面中添加两个 <select> 标签,用来显示年份和月份;同时添加两个 <ul> 标签,一个用来显示星期,另一个用来显示日期 在 JavaScript 脚本中动态添加年份和月份,获取当前日期的年份
查看本章节 查看作业目录 需求说明: 使用 JavaScript 中的 Date 对象,在页面上显示一个万年历.选择不同的年份和月份,在页面中显示当前月的日历 实现思路: 在页面中添加两个 <s ...
随机推荐
- ffplay mini 媒体播放器
下载 http://pan.baidu.com/s/1dDcp3lZ 一定要解压到 D:\ffplay\ 目录下 双击 OpenWith_FFPlay_mini.reg 注册ffplay 在视频文件名 ...
- codeforces B. Color the Fence 解题报告
题目链接:http://codeforces.com/problemset/problem/349/B 题目意思:给定v升的颜料和9个需要花费ad 升的颜料,花费ad 升的颜料意味着得到第d个数字,现 ...
- 一、HTML和CSS基础--开发工具--Sublime前端开发工具技巧介绍
下载:官网下载(根据系统下载) 安装:按步骤安装即可 注意:当前稳定版本为2,但3的功能有提升:Mac和Windows下的快捷键不同 优点:启动速度快,界面简洁,可以直接打开图片. 1 菜单栏主要功能 ...
- js之事件冒泡和事件捕获介绍
链接:http://www.jb51.net/article/42492.htm (1)冒泡型事件:事件按照从最特定的事件目标到最不特定的事件目标(document对象)的顺序触发. (2)捕获型事件 ...
- Virtual Box创建共享目录
1.先关闭ubuntu,在virtualbox“设置”中找到“共享文件夹”,点击进入,点击右边添加目录按钮,添加windows中要共享的目录,取一个名.比如我在D盘建一个名为share的文件夹,如下图 ...
- linux&mac下查看端口被哪个进程占用
mac : lsof -i:8080 linux : neststat -anltp | grep 8080
- hdu 4833 离散化+dp ****
先离散化,然后逆着dp,求出每个点能取到的最大利益,然后看有没有钱,有钱就投 想法好复杂 #include <stdio.h> #include <string.h> #inc ...
- yum与rpm的使用
rpm常用的命令组合: rpm -ivh:安装显示安装进度--install--verbose--hash -Uvh:升级软件包--Update: -qpl:列出RPM软件包内的文件信息[Query ...
- NDK编译生成so文件
1 首先加载项目
- MATLAB学习笔记(十一)——MATLAB图形用户界面设计
(一)菜单设计 一.建立用户菜单 1.概况: 用户菜单一般含有一级菜单和二级菜单,乃至多级菜单.每一级菜单又包含多个菜单项.建立菜单可以使用uimenu函数. 2.uimenu函数调用: %建立一级菜 ...