php日历的快捷实现

原创
2015/12/18 16:45
阅读数 118

最简单的,输出一个月的所有日期和星期几

<?php
//月初月末怎么获得就不写了,表示个意思
$begin = new DateTime('2015-12-01');
$end = new DateTime('2015-12-31');
$end = $end->modify('+1 day'); 

$interval = new DateInterval('P1D');
$range = new DatePeriod($begin, $interval, $end);

foreach($range as $date){
    $cal[] = $date->format("Ymd 周w");
}

print_r($cal);

输出

Array
(
    [0] => 20151201 周2 
    [1] => 20151202 周3 
    [2] => 20151203 周4 
    [3] => 20151204 周5 
    [4] => 20151205 周6 
    [5] => 20151206 周0 
    [6] => 20151207 周1 
    [7] => 20151208 周2 
    [8] => 20151209 周3 
    [9] => 20151210 周4 
    [10] => 20151211 周5 
    [11] => 20151212 周6 
    [12] => 20151213 周0 
    [13] => 20151214 周1 
    [14] => 20151215 周2 
    [15] => 20151216 周3 
    [16] => 20151217 周4 
    [17] => 20151218 周5 
    [18] => 20151219 周6 
    [19] => 20151220 周0 
    [20] => 20151221 周1 
    [21] => 20151222 周2 
    [22] => 20151223 周3 
    [23] => 20151224 周4 
    [24] => 20151225 周5 
    [25] => 20151226 周6 
    [26] => 20151227 周0 
    [27] => 20151228 周1 
    [28] => 20151229 周2 
    [29] => 20151230 周3 
    [30] => 20151231 周4 
)

补全前后几天

<?php

$begin = new DateTime('2015-12-01');
$sub = $begin->format("N") - 1;
$sub && $begin->sub(new DateInterval('P' . $sub . 'D'));

$end = new DateTime('2015-12-31');
$add = 7 - $end->format("N");
$add && $end->add(new DateInterval('P' . $add . 'D'));

$end = $end->modify('+1 day'); 

$interval = new DateInterval('P1D');
$range = new DatePeriod($begin, $interval, $end);

foreach($range as $date){
    $cal[] = $date->format("Ymd 周N");
}

print_r($cal);

输出

Array
(
    [0] => 20151130 周1
    [1] => 20151201 周2
    [2] => 20151202 周3
    [3] => 20151203 周4
    [4] => 20151204 周5
    [5] => 20151205 周6
    [6] => 20151206 周7
    [7] => 20151207 周1
    [8] => 20151208 周2
    [9] => 20151209 周3
    [10] => 20151210 周4
    [11] => 20151211 周5
    [12] => 20151212 周6
    [13] => 20151213 周7
    [14] => 20151214 周1
    [15] => 20151215 周2
    [16] => 20151216 周3
    [17] => 20151217 周4
    [18] => 20151218 周5
    [19] => 20151219 周6
    [20] => 20151220 周7
    [21] => 20151221 周1
    [22] => 20151222 周2
    [23] => 20151223 周3
    [24] => 20151224 周4
    [25] => 20151225 周5
    [26] => 20151226 周6
    [27] => 20151227 周7
    [28] => 20151228 周1
    [29] => 20151229 周2
    [30] => 20151230 周3
    [31] => 20151231 周4
    [32] => 20160101 周5
    [33] => 20160102 周6
    [34] => 20160103 周7
)

具体怎么输出表格就不写了,都会

展开阅读全文
打赏
0
0 收藏
分享
加载中
更多评论
打赏
0 评论
0 收藏
0
分享
返回顶部
顶部