php 获取某个月份的周,php – 如何获取给定月份中每周的日期间隔?

有没有办法在一个月的

PHP中获取每周的日期开始/结束?

所以,例如,如果我这个月(2011年11月),我需要返回

30 Oct -> 5 Nov

6 Nov -> 12 Nov

13 Nov -> 19 Nov

20 Nov -> 26 Nov

27 Nov -> 3 Dec

LE:

这是我所做的,以防其他人需要它.代码不漂亮但它可以正常工作.

public function getMonthWeeks($month,$year)

{

$month = intval($month);

if ($month < 1) {

$month = 1;

}

if ($month > 12) {

$month = 12;

}

$tsfdOfMonth = mktime(0,$month,1,$year);

$dayOfWeek = idate('w',$tsfdOfMonth);

$tIntervalStart = $tsfdOfMonth;

$tNextMonth = idate('m',strtotime("+1 month",$tsfdOfMonth));

if ($dayOfWeek > 0) {

$tStr = sprintf("-%d %s",$dayOfWeek,$dayOfWeek == 1 ? 'day' : 'days'

);

$tIntervalStart = strtotime($tStr,$tsfdOfMonth);

}

$resultDates = array();

$tsStart = $tIntervalStart;

$tsEnd = strtotime('+6 days',$tsStart);

while (true) {

$rObj = new stdClass;

$rObj->LinkStr = sprintf("%s %s - %s %s",date('M',$tsStart),date('d',$tsEnd),$tsEnd)

);

$rObj->DateStart = date('Y-m-d',$tsStart);

$rObj->DateEnd = date('Y-m-d',$tsEnd);

$resultDates[] = $rObj;

if (idate('m',strtotime('+1 day',$tsEnd)) == $tNextMonth) {

break;

}

$tsStart = strtotime('+1 day',$tsEnd);

$tsEnd = strtotime('+6 days',$tsStart);

}

return $resultDates;

}

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值