PHP獲取日期對應星期、一週日期、星期開始與結束日期的方法
阿新 • • 發佈:2019-01-09
本文例項講述了PHP獲取日期對應星期、一週日期、星期開始與結束日期的方法。分享給大家供大家參考,具體如下:
/* * 獲取日期對應的星期 * 引數$date為輸入的日期資料,格式如:2018-6-22 */ function get_week($date) { //強制轉換日期格式 $date_str = date('Y-m-d', strtotime($date)); //封裝成陣列 $arr = explode("-", $date_str); //引數賦值 //年 $year = $arr[0]; //月,輸出2位整型,不夠2位右對齊 $month = sprintf('%02d', $arr[1]); //日,輸出2位整型,不夠2位右對齊 $day = sprintf('%02d', $arr[2]); //時分秒預設賦值為0; $hour = $minute = $second = 0; //轉換成時間戳 $strap = mktime($hour, $minute, $second, $month, $day, $year); //獲取數字型星期幾 $number_wk = date("w", $strap); //自定義星期陣列 $weekArr = array("0", "1", "2", "3", "4", "5", "6"); //獲取數字對應的星期 return $weekArr[$number_wk]; } /** * 獲取一週日期 * @param $time 時間戳 * @param $format 轉換格式 */ function get_week($time, $format = "Y-m-d") { $week = date('w',$time); $weekname=array('星期一','星期二','星期三','星期四','星期五','星期六','星期日'); //星期日排到末位 if(empty($week)){ $week=7; } for ($i=0;$i<=6;$i++){ $data[$i]['date'] = date($format,strtotime( '+'. $i+1-$week .' 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表示每週日為開始日期 //獲取當前周的第幾天 週日是 0 週一到週六是 1 - 6 $w = date('w', strtotime($sdefaultDate)); //獲取本週開始日期,如果$w是0,則表示週日,減去 6 天 $week_start = date('Y-m-d', strtotime("$sdefaultDate -" . ($w ? $w - $first : 6) . ' days')); //本週結束日期 $week_end = date('Y-m-d', strtotime("$week_start +6 days")); return array("week_start" => $week_start, "week_end" => $week_end); }