获取日期对应的星期
/*
* 获取日期对应的星期
* 参数$date为输入的日期数据,格式如:2018-6-22
*/
function get_week($date){
$date_str=date(‘Y-m-d‘,strtotime($date));//强制转换日期格式
$arr=explode("-", $date_str);//封装成数组
//参数赋值
$year=$arr[0];//年
$month=sprintf(‘%02d‘,$arr[1]); //月,输出2位整型,不够2位右对齐
$day=sprintf(‘%02d‘,$arr[2]);//日,输出2位整型,不够2位右对齐
$hour = $minute = $second = 0;//时分秒默认赋值为0;
$strap = mktime($hour,$minute,$second,$month,$day,$year);//转换成时间戳
$number_wk=date("w",$strap);//获取数字型星期几
//自定义星期数组
$weekArr=array("周日","周一","周二","周三","周四","周五","周六");
//获取数字对应的星期
return $weekArr[$number_wk];
}
获取一周日期
/**
* 获取一周日期
* @param $time 时间戳
* @param $format 转换格式
*/
function get_week_arr($time=0, $format = "Y-m-d"){
if(!$time){
$time = time();
}
$week = date(‘w‘, $time);
$weekname = array(‘星期一‘, ‘星期二‘, ‘星期三‘, ‘星期四‘, ‘星期五‘, ‘星期六‘, ‘星期日‘);
//星期日排到末位
if (empty($week)) {
$week = 7;
}
for ($i = 0; $i <= 6; $i++) {
$currDay = $i+1-$week;
$data[$i][‘date‘] = date($format, strtotime("+{$currDay} days", $time));
$data[$i][‘week‘] = $weekname[$i];
}
return $data;
}
获取某星期的开始时间和结束时间
/*
* 获取某星期的开始时间和结束时间
* time 时间
* first 表示每周星期一为开始日期 0表示每周日为开始日期
*/
function getWeekMyActionAndEnd($time = ‘‘, $first = 1){
//当前日期
if(!$time){
$time = time();
}
$sdefaultDate = date("Y-m-d", $time);
//$first =1 表示每周星期一为开始日期 0表示每周日为开始日期
$w = date(‘w‘, strtotime($sdefaultDate)); //获取当前周的第几天 周日是 0 周一到周六是 1 - 6
$days = $w ? $w - $first : 6; //获取本周开始日期,如果$w是0,则表示周日,减去 6 天
$week_start = date(‘Y-m-d‘, strtotime("{$sdefaultDate} -{$days} days"));
$week_end = date(‘Y-m-d‘, strtotime("{$week_start} +6 days")); //本周结束日期
return array("week_start" => $week_start, "week_end" => $week_end);
}
原文:https://www.cnblogs.com/binblogs/p/11858920.html