使用php动态生成一个日历,附源码。【简单实用】
17-02-08 11:56
字数 668
阅读 4925
已编辑
日历在web开发中是非常常用的一个功能,网上搜也能找到一大堆日历组件,大部分是js组件。
因为再开发过程中需要使用到日历的功能,又不想下载什么日历组件。所以就自己动手写了一个简单的php生成日历的功能。
源码如下:
/*
* @动态生成一个日历
* @param 日期[2016-07-01|2017-02-01]
* @return table
*/
function create_calendar($month){
#初始化
$calendar = '';
#表头
$week_arr = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六'];
#本月共多少天
$this_month_days = (int)date('t',strtotime($month));
#本月1号星期几
$this_month_one_n = (int)date('w', strtotime($month));
//表头
$calendar .= '<div class="table-responsive"><table class="table table-bordered"><thead><tr>';
foreach ($week_arr as $k => $v){
if($k == 0){
$class = ' class="sunday"';
}elseif ($k == 6){
$class = ' class="saturday"';
}else{
$class = '';
}
$calendar .= '<th'.$class.'>'.$v.'</th>';
}
$calendar .= '</tr></thead><tbody>';
//表身
#计算本月共几行数据
$total_rows = ceil(($this_month_days - (7 - $this_month_one_n)) / 7) + 1;
$number = 1;
$flag = 0;
for ($row = 1;$row <= $total_rows;$row++){
$calendar .= '<tr>';
for ($week = 0;$week <= 6;$week ++){
if($number < 10){
$numbera = '0'.$number;
}else{
$numbera = $number;
}
if(date('Ym',strtotime($month)) .$numbera == intval(date('Ymd'))){
$cell_id = ' id="today"';
}else{
$cell_id = '';
}
if($number <= $this_month_days){
if($row == 1){
if($week >= $this_month_one_n){
$calendar .= '<td'.$cell_id.'>'.$number.'</td>';
$flag = 1;
}else{
$calendar .= '<td></td>';
}
}else{
$calendar .= '<td'.$cell_id.'>'.$number.'</td>';
}
if($flag){
$number ++;
}
}else{
$calendar .= '<td></td>';
}
}
$calendar .= '</tr>';
}
$calendar .= '</tbody></table></div>';
return $calendar;
}
id=today的就是今天的日期。
使用方法
参数直接传一个日期,date类型的。如要用17年2月份的日历,则参数传2017-02-01
;如果要17年1月的则传参数2017-01-01
。
$calendar = create_calendar('2017-02-01');
echo $calendar;
结果如下
样式的话需要自己手动写一下,或者直接使用bootstrap。具体效果可以参考本站的签到日历。非常简单有用的小函数。
0人点赞>
0 条评论
排序方式
时间
投票
快来抢占一楼吧
请登录后发表评论
相关推荐
文章归档
2024-06
1 篇
2024-05
2 篇
2024-04
2 篇
2024-03
2 篇
2024-01
1 篇
展开剩余 67 条
2023-10
1 篇
2023-09
1 篇
2023-08
1 篇
2023-06
1 篇
2023-04
1 篇
2022-12
2 篇
2022-06
1 篇
2022-04
4 篇
2022-03
3 篇
2022-01
6 篇
2021-12
2 篇
2021-11
2 篇
2021-10
2 篇
2021-09
1 篇
2021-08
2 篇
2021-07
4 篇
2021-06
1 篇
2021-05
3 篇
2021-04
3 篇
2021-01
2 篇
2020-11
1 篇
2020-10
3 篇
2020-09
2 篇
2020-08
1 篇
2020-07
5 篇
2020-06
5 篇
2020-05
1 篇
2020-04
1 篇
2020-03
2 篇
2020-02
3 篇
2020-01
1 篇
2019-11
5 篇
2019-10
10 篇
2019-09
12 篇
2019-08
17 篇
2019-07
8 篇
2019-05
3 篇
2019-04
8 篇
2019-03
7 篇
2019-02
8 篇
2019-01
5 篇
2018-12
7 篇
2018-11
8 篇
2018-10
4 篇
2018-09
7 篇
2018-08
12 篇
2018-07
9 篇
2018-06
6 篇
2018-05
11 篇
2018-04
18 篇
2018-03
1 篇
2018-02
2 篇
2018-01
10 篇
2017-12
14 篇
2017-11
44 篇
2017-10
13 篇
2017-09
4 篇
2017-08
12 篇
2017-07
5 篇
2017-06
4 篇
2017-05
2 篇
2017-04
3 篇
2017-03
9 篇
2017-02
3 篇
2017-01
2 篇
2016-12
10 篇
2016-11
4 篇
最新文章
最受欢迎
06-26 11:51
05-17 17:08
05-17 10:59
04-11 17:05
04-09 17:11
13 评论
11 评论
10 评论