php取月份函数,分享3个php获取日历的函数

本文给大家汇总了3个php获取日历的函数,分别是php获取指定日期的月份的日历、获取指定日期所在月的开始日期与结束日期、获取当前星期的日期范围,都是比较常用的方法,有需要的小伙伴可以参考下。

提供一个日期,获取这个日期的星期对应日历列表,键为星期标示

$month_date = '2015-09-25';

$start_time = strtotime($month_date);

$start_week = date('w', $start_time);

$total_month_day = date('t', $start_time);

$weeks_in_month = ceil(($start_week+$total_month_day)/7);

$month_day_arr = [];

$start_month_day = 1;

for($i=0;$i

for($j=0;$j<7;$j++){

if($i ==0 && $j >= $start_week) {

$month_day_arr[$i][$j] = $start_month_day;

$start_month_day++;

} elseif($i == 0) {

$month_day_arr[$i][$j] = '';

} else {

$month_day_arr[$i][$j] = $start_month_day;

$start_month_day++;

}

if($start_month_day > $total_month_day){

break;

}

}

}

echo "

";

print_r($month_day_arr);

Array

(

[0] => Array

(

[0] =>

[1] =>

[2] => 1

[3] => 2

[4] => 3

[5] => 4

[6] => 5

)

[1] => Array

(

[0] => 6

[1] => 7

[2] => 8

[3] => 9

[4] => 10

[5] => 11

[6] => 12

)

[2] => Array

(

[0] => 13

[1] => 14

[2] => 15

[3] => 16

[4] => 17

[5] => 18

[6] => 19

)

[3] => Array

(

[0] => 20

[1] => 21

[2] => 22

[3] => 23

[4] => 24

[5] => 25

[6] => 26

)

[4] => Array

(

[0] => 27

[1] => 28

[2] => 29

[3] => 30

)

)

获取指定日期所在月的开始日期与结束日期

/**

* @param string $date

* @param boolean 为true返回开始日期,否则返回结束日期

* @return array

* @access private

*/

private function getMonthRange( $date, $returnFirstDay = true ) {

$timestamp = strtotime( $date );

if ( $returnFirstDay ) {

$monthFirstDay = date( 'Y-m-1 00:00:00', $timestamp );

return $monthFirstDay;

} else {

$mdays = date( 't', $timestamp );

$monthLastDay = date( 'Y-m-' . $mdays . ' 23:59:59', $timestamp );

return $monthLastDay;

}

}

获取当前星期的日期范围,也就是从星期一到星期日的日期范围。

function getWeekRange($date){

$ret=array();

$timestamp=strtotime($date);

$w=strftime('%u',$timestamp);

$ret['sdate']=date('Y-m-d 00:00:00',$timestamp-($w-1)*86400);

$ret['edate']=date('Y-m-d 23:59:59',$timestamp+(7-$w)*86400);

return $ret;

}

//author:zhxia 获取指定日期所在月的开始日期与结束日期

function getMonthRange($date){

$ret=array();

$timestamp=strtotime($date);

$mdays=date('t',$timestamp);

$ret['sdate']=date('Y-m-1 00:00:00',$timestamp);

$ret['edate']=date('Y-m-'.$mdays.' 23:59:59',$timestamp);

return $ret;

}

//author:zhxia 以上两个函数的应用

function getFilter($n){

$ret=array();

switch($n){

case 1:// 昨天

$ret['sdate']=date('Y-m-d 00:00:00',strtotime('-1 day'));

$ret['edate']=date('Y-m-d 23:59:59',strtotime('-1 day'));

break;

case 2://本星期

$ret=getWeekRange(date('Y-m-d'));

break;

case 3://上一个星期

$strDate=date('Y-m-d',strtotime('-1 week'));

$ret=getWeekRange($strDate);

break;

case 4: //上上星期

$strDate=date('Y-m-d',strtotime('-2 week'));

$ret=getWeekRange($strDate);

break;

case 5: //本月

$ret=getMonthRange(date('Y-m-d'));

break;

case 6://上月

$strDate=date('Y-m-d',strtotime('-1 month'));

$ret=getMonthRange($strDate);

break;

}

return $ret;

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值