PHP获取日期对应星期、一周日期、星期开始与结束日期的方法

这篇文章主要介绍了PHP获取日期对应星期、一周日期、星期开始与结束日期的方法,涉及php日期与时间相关计算操作技巧,需要的朋友可以参考下。

本文实例讲述了PHP获取日期对应星期、一周日期、星期开始与结束日期的方法,分享给大家供大家参考,具体如下:

  1. /*
  2. * 获取日期对应的星期
  3. * 参数$date为输入的日期数据,格式如:2018-6-22
  4. */
  5. function get_week($date)
  6. {
  7. //强制转换日期格式
  8. $date_str = date('Y-m-d', strtotime($date));
  9. //封装成数组
  10. $arr = explode("-", $date_str);
  11. //参数赋值
  12. //年
  13. $year = $arr[0];
  14. //月,输出2位整型,不够2位右对齐
  15. $month = sprintf('%02d', $arr[1]);
  16. //日,输出2位整型,不够2位右对齐
  17. $day = sprintf('%02d', $arr[2]);
  18. //时分秒默认赋值为0;
  19. $hour = $minute = $second = 0;
  20. //转换成时间戳
  21. $strap = mktime($hour, $minute, $second, $month, $day, $year);
  22. //获取数字型星期几
  23. $number_wk = date("w", $strap);
  24. //自定义星期数组
  25. $weekArr = array("0", "1", "2", "3", "4", "5", "6");
  26. //获取数字对应的星期
  27. return $weekArr[$number_wk];
  28. }
  29. /**
  30. * 获取一周日期
  31. * @param $time 时间戳
  32. * @param $format 转换格式
  33. */
  34. function get_week($time, $format = "Y-m-d") {
  35. $week = date('w',$time);
  36. $weekname=array('星期一','星期二','星期三','星期四','星期五','星期六','星期日');
  37. //星期日排到末位
  38. if(emptyempty($week)){
  39. $week=7;
  40. }
  41. for ($i=0;$i<=6;$i++){
  42.   $data[$i]['date'] = date($format,strtotime( '+'. $i+1-$week .' days',$time));
  43.   $data[$i]['week'] = $weekname[$i];
  44. }
  45. return $data;
  46. }
  47. /*
  48. * 获取某星期的开始时间和结束时间
  49. * time 时间
  50. * first 表示每周星期一为开始日期 0表示每周日为开始日期
  51. */
  52. function getWeekMyActionAndEnd($time = '', $first = 1)
  53. {
  54. //当前日期
  55. if (!$time) $time = time();
  56. $sdefaultDate = date("Y-m-d", $time);
  57. //$first =1 表示每周星期一为开始日期 0表示每周日为开始日期
  58. //获取当前周的第几天 周日是 0 周一到周六是 1 - 6
  59. $w = date('w', strtotime($sdefaultDate));
  60. //获取本周开始日期,如果$w是0,则表示周日,减去 6 天
  61. $week_start = date('Y-m-d', strtotime("$sdefaultDate -" . ($w ? $w - $first : 6) . ' days'));
  62. //本周结束日期
  63. $week_end = date('Y-m-d', strtotime("$week_start +6 days"));
  64. return array("week_start" => $week_start, "week_end" => $week_end);
  65. }