获取周的日期范围
Posted jiqing9006
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了获取周的日期范围相关的知识,希望对你有一定的参考价值。
/**
* 获取周的日期范围
* @param string $week
* @param string $year
* @return array
*/
public static function getWeekDate($week = '',$year = '')
/**
* 2007年 第一周 是 01-01 到 01 - 07 因为第一天就是星期一 6
* 2008年 第一周 是 01-01 到 01 - 06 因为第一天就是星期二 5 (闰年多一天)
* 2009年 第一周 是 01-01 到 01 - 04 因为第一天就是星期四 3
* 2010年 第一周 是 01-01 到 01 - 03 因为第一天就是星期五 2
* 2011年 第一周 是 01-01 到 01 - 02 因为第一天就是星期六 1
* 2012年 第一周 是 01-01 到 01 - 01 因为第一天就是星期天 0
*
* 2019年 第一周 是 01-01 到 01 - 06 因为第一天就是星期二 5
*/
$year = $year ? : date('Y');
// 获取第一天
$first_date = $year.'-01-01';
// 获取第一天是周几
$week_num = array(7, 1, 2, 3, 4, 5, 6);
$first_date_week = $week_num[date('w',strtotime($first_date))];
$first_week_end_day =1 + (7 - $first_date_week);
$out_data = [];
if ($week === 1)
$out_data['first_date'] = $first_date;
$out_data['end_date'] = date('Y-m-d',strtotime('+'.($first_week_end_day - 1).' day',strtotime($first_date)));
else
$week_begin_day = $first_week_end_day + ($week - 2) * 7 + 1;
$week_end_day = $week_begin_day + 6;
$out_data['first_date'] = date('Y-m-d',strtotime('+'.($week_begin_day - 1).' day',strtotime($first_date)));
$out_data['end_date'] = date('Y-m-d',strtotime('+'.($week_end_day - 1).' day',strtotime($first_date)));
return $out_data;
以上是关于获取周的日期范围的主要内容,如果未能解决你的问题,请参考以下文章
Python2:检索给定日期范围的星期日 - 星期六周开始/结束日期