您的位置:首页 > 编程语言 > PHP开发

php日历的快捷实现

2015-12-18 16:45 246 查看
原文链接:https://my.oschina.net/inuxor/blog/547420

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

<?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
)

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

转载于:https://my.oschina.net/inuxor/blog/547420

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: