一个月补齐php面试,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

)

补全前后几天

$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

)

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值