zoukankan      html  css  js  c++  java
  • PHP获取日期对应星期、一周日期、星期开始与结束日期的方法

    本文实例讲述了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);
    }
    

      

  • 相关阅读:
    urlEncode
    rsyslog queue队列权威指南
    rsyslog的安装、使用、详解
    长连接及心跳保活原理简介
    python时间日期格式化和反格式化
    无锁编程
    如何快速定位找出SEGV内存错误的程序Bug
    ElasticSearch搜索数据到底有几种方式?
    golang string和[]byte的对比
    PHP中使用Redis长连接笔记
  • 原文地址:https://www.cnblogs.com/bluealine/p/10243109.html
Copyright © 2011-2022 走看看