PHP 日期格式化和日期计算以及获取当前周、月头尾日期

PHP 日期格式化和日期计算以及当获取前周、月头尾日期

PHP 日期格式化示例代码:

   /**
     * 格式化时间
     * $type:类型
     * $strDate:需要处理的时间字符串
     *
     * 年份  Y:四位年份     y:两位年份
     * 月份  m: 两位数字月份 n: 一位数字月份 M:英文月
     * 日期  d:两位数字日期 j:一位数字日期  D:英文日期
     * 时:H 、分:i 、秒:s
     **/
    public function GetFormatDate($type = 1,$strDate=''){
            $time = time();
            if(isset($strDate) && !empty($strDate)){
                $time = strtotime($strDate);
            }

            switch($type){
                case 1:
                   return date("H:i",$time);
                case 2:
                    return date("m月d日 H:i",$time);
                case 3:
                    return date("m/d H:i",$time);
                case 4:
                    return date("Y年m月d日 H:i",$time);
                case 5:
                    return date("Y/m/d H:i",$time);
                case 6:
                    return date("Y年m月d日 H:i:s",$time);
                case 7:
                    return date("Y-m-d H:i:s",$time);
                case 8:
                    return date("Y/m/d H:i:s",$time);
                default:
                    return $strDate;
            }
    }

日期计算示例代码:

   /**
     * 时间加减处理
     * $strDate:需要处理的时间字符串
     * $days:   加减天数
     **/
    public function ChangeDate($strDate,$days){
          $time = time();
          if(isset($strDate) && !empty($strDate)){
              $time = strtotime($strDate);
          }

         return date('Y-m-d H:i:s',strtotime("$days day",$time));
    }

获取当前周、月头尾日期示例代码:

   /**
     *  获取当前周、月的头尾日期
     *
     *  $dateArr['W1']:周一
     *  $dateArr['W7']:周末
     *  $dateArr['M1']:月头
     *  $dateArr['M2']:月尾
     **/
    public function GetCurrentDateInfo(){
       $dayTimes = 24*60*60;
       $dateArr = [];$temp = '';

       //0:周末 1-6:周一 至 周六
       $weekIndex = (int)date('W');
       switch($weekIndex){
           case 0:
               $dateArr['W1'] = date('Y-m-d 00:00:00',strtotime('-6 day'));
               $dateArr['W7'] = date('Y-m-d 23:59:59');
               break;
           case 1:
               $dateArr['W1'] = date('Y-m-d 00:00:00');
               $dateArr['W7'] = date('Y-m-d 23:59:59',strtotime('+6 day'));
               break;
           case 2:
               $dateArr['W1'] = date('Y-m-d 00:00:00',strtotime('-1 day'));
               $dateArr['W7'] = date('Y-m-d 23:59:59',strtotime('+5 day'));
               break;
           case 3:
               $dateArr['W1'] = date('Y-m-d 00:00:00',strtotime('-2 day'));
               $dateArr['W7'] = date('Y-m-d 23:59:59',strtotime('+4 day'));
               break;
           case 4:
               $dateArr['W1'] = date('Y-m-d 00:00:00',strtotime('-3 day'));
               $dateArr['W7'] = date('Y-m-d 23:59:59',strtotime('+3 day'));
               break;
           case 5:
               $dateArr['W1'] = date('Y-m-d 00:00:00',strtotime('-4 day'));
               $dateArr['W7'] = date('Y-m-d 23:59:59',strtotime('+2 day'));
               break;
           case 6:
               $dateArr['W1'] = date('Y-m-d 00:00:00',strtotime('-5 day'));
               $dateArr['W7'] = date('Y-m-d 23:59:59',strtotime('+1 day'));
               break;
       }

       //1-12:一月 至 十二月
       $monthIndex = (int)date('m');
       switch($monthIndex){
           case 1:
               $temp = date('Y-02-01 00:00:00');
               $dateArr['M1'] = date('Y-m-01 00:00:00');
               $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes);
               break;
           case 2:
               $temp = date('Y-03-01 00:00:00');
               $dateArr['M1'] = date('Y-m-01 00:00:00');
               $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes);
               break;
           case 3:
               $temp = date('Y-04-01 00:00:00');
               $dateArr['M1'] = date('Y-m-01 00:00:00');
               $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes);
               break;
           case 4:
               $temp = date('Y-05-01 00:00:00');
               $dateArr['M1'] = date('Y-m-01 00:00:00');
               $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes);
               break;
           case 5:
               $temp = date('Y-06-01 00:00:00');
               $dateArr['M1'] = date('Y-m-01 00:00:00');
               $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes);
               break;
           case 6:
               $temp = date('Y-07-01 00:00:00');
               $dateArr['M1'] = date('Y-m-01 00:00:00');
               $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes);
               break;
           case 7:
               $temp = date('Y-08-01 00:00:00');
               $dateArr['M1'] = date('Y-m-01 00:00:00');
               $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes);
               break;
           case 8:
               $temp = date('Y-09-01 00:00:00');
               $dateArr['M1'] = date('Y-m-01 00:00:00');
               $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes);
               break;
           case 9:
               $temp = date('Y-10-01 00:00:00');
               $dateArr['M1'] = date('Y-m-01 00:00:00');
               $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes);
               break;
           case 10:
               $temp = date('Y-11-01 00:00:00');
               $dateArr['M1'] = date('Y-m-01 00:00:00');
               $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes);
               break;
           case 11:
               $temp = date('Y-12-01 00:00:00');
               $dateArr['M1'] = date('Y-m-01 00:00:00');
               $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes);
               break;
           case 12:
               $temp = date((date('Y')+1)."-01-01 00:00:00");
               $dateArr['M1'] = date('Y-m-01 00:00:00');
               $dateArr['M2'] = date('Y-m-d 23:59:59',strtotime($temp)-$dayTimes);
               break;
       }

       return $dateArr;
    }

以上代码仅供参考,疏漏之处还请指出以便改进!

时间: 2024-10-23 12:16:27

PHP 日期格式化和日期计算以及获取当前周、月头尾日期的相关文章

shell的date日期循环方法:日期格式转时间戳计算,再将时间戳转回日期格式

1,日期对象转时间戳current_day 2,计算增量的时间戳,即循环每步的增量one_day 3,循环体计算,日期变量加增量后重新赋值自己 4,时间戳转回日期格式后输出 current_day=2015-07-17 end_day=2014-01-01 #步骤1 timestamp_current=`date -d "$current_day" +%s` timestamp_end=`date -d "$end_day" +%s` #步骤2 one_day=$(

Oracle 英文 非标准格式 日期 格式化

最近在处理一张表的时候,需要按照日期排序,日期字段中日期的格式有两种. 格式一:07-Aug-2015 格式二:10/28/16 日期转化及格式化sql语句: select to_date('07-Aug-2015','dd-mm-yyyy','NLS_DATE_LANGUAGE = english') 英文日期, to_date('10/28/16','mm/dd/yy') 日期, to_char(to_date('07-Aug-2015','dd-mm-yyyy','NLS_DATE_LAN

[记忆练习系列-jquery日期格式化]

方法主体 Date.prototype.Format = function (fmt) { //author: meizz       var o = {        "M+": this.getMonth() + 1,                 //月份           "d+": this.getDate(),                    //日           "h+": this.getHours(),     

DataTime日期格式化

C# DateTime日期格式化 在C#中DateTime是一个包含日期.时间的类型,此类型通过ToString()转换为字符串时,可根据传入给Tostring()的参数转换为多种字符串格式. 目录 1. 分类 2. 制式类型 3. 自定义格式类型 1. 分类 DateTime调用ToString()传入的参数可分为制式和自定义两种: 1) 制式:系统自带的,转入特定的单个字符就可转换为系统已设定好的格式. 2) 自定义:自由组合日期代码(y.M.d.h.m.s.f)来展示丰富的日期格式. 2.

Js获取当前日期时间+日期印证+判断闰年+日期的天数差+日期格式化+JS判断某年某月有多少天

Js获取当前日期时间+日期验证+判断闰年+日期的天数差+日期格式化+JS判断某年某月有多少天 字符串转日期型+Js当前日期时间+日期验证+判断闰年+日期的天数差+日期格式化+日期所在年的第几周 日期时间脚本库方法列表Date.prototype.isLeapYear 判断闰年Date.prototype.Format 日期格式化Date.prototype.DateAdd 日期计算Date.prototype.DateDiff 比较日期差Date.prototype.toString 日期转字符

Js获取当前日期时间及Js日期格式化

Js获取当前日期时间: 1 var myDate = new Date(); 2 myDate.getYear(); //获取当前年份(2位) 3 myDate.getFullYear(); //获取完整的年份(4位,1970-????) 4 myDate.getMonth(); //获取当前月份(0-11,0代表1月) 5 myDate.getDate(); //获取当前日(1-31) 6 myDate.getDay(); //获取当前星期X(0-6,0代表星期天) 7 myDate.getT

(随笔)js获取当前时间并格格式化当前日期 获取date天后的日期(2014年11月27日 16:31:49)

(随笔)js获取当前时间并格格式化当前日期 获取date天后的日期参考网络(2014年11月27日 16:31:49 浙江) // 格式化当前日期 获取date天后的日期    function getNowFormatDate(date) {        var day = new Date();        var Year = 0;        var Month = 0;        var Day = 0;        var CurrentDate = "";  

JS 日期格式化和解析工具

本来想模仿Java里面的SimpleDateFormat()对象的,但是感觉这样用起来不方便,所以还是直接写成单独的方法算了. 原文链接 日期格式化 使用说明 formatDate(date, fmt),其中fmt支持的格式有: y(年) M(月) d(日) q(季度) w(星期) H(24小时制的小时) h(12小时制的小时) m(分钟) s(秒) S(毫秒) 另外,字符的个数决定输出字符的长度,如,yy输出16,yyyy输出2016,ww输出周五,www输出星期五,等等. 代码 完整代码一共

JS日期区间选择和计算(一)技术篇

吐槽归吐槽,工作还是不能懈怠滴,接下来说说日期选择的问题吧 首先上需求: 这个需求在后台管理里面是使用的比较频繁的,比如说在查询中:查询一周内的XXX,本月的XXX,上月的XXX等等的需求 技术解决方案: 和月份相关计算要抓住一个不变的日期,因为大家都知道每个月的天数是都不一样的,有28天,29天,30天和31天,所以要进行精确的计算就得抓住共性那就是每个月都有1号,和月份相关的计算1号这我觉得是一个关键点有了这一天你就可以随心所欲的进行日期操控 需求一:选择上个月我要显示出上个月月初和月末两个