獲取日期對應的星期
/* * 獲取日期對應的星期 * 參數$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); }