本文實例講述了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(emptyempty($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);
- }
新聞熱點
疑難解答