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, 0, 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', $tsStart),

date('M', $tsEnd), date('d', $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;

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值