php – 如何获取给定月份中每周的日期间隔?
发布时间:2020-12-13 21:44:25 所属栏目:PHP教程 来源:网络整理
导读:有没有办法在一个月的 PHP中获取每周的日期开始/结束? 所以,例如,如果我这个月(2011年11月),我需要返回 30 Oct - 5 Nov 6 Nov - 12 Nov13 Nov - 19 Nov20 Nov - 26 Nov27 Nov - 3 Dec LE: 这是我所做的,以防其他人需要它.代码不漂亮但它可以正常工作. publ
有没有办法在一个月的
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; } 解决方法
你必须写一个函数:
算法: >获取每月第一周的某一天. 两个功能将非常有用:$saturdaytimestamp = strtotime(“6天”,$sundaytimestamp)和$dayofweek = idate(‘w’,$timestamp); (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |