• PHP 时间函数集合


    计算指定日期的前几天,几个月或者几年的函数

    $a = '2014/08/21';
    echo date( "Y-m-d", strtotime( "-6 month  ".$a."" ) );

    获得当前月的制定日期,比如说20号的

    echo date('Y-m-20 H:i:s',time());

    获得系统时间前一个月的第一天

    echo 'next_1='.date( "Y-m-1", strtotime( "-1 month".date("Y-m-d",time())."" ) ).'<br>';

    获得系统时间前一个月的最后一天
     echo 'next_20='.date( "Y-m-t", strtotime( "-1 month".date("Y-m-d",time())."" ) );

    注意:曾经遇到过这样的问题,

    $sagyoYmd = '2014-11-29';
    
     $sy_sagyo_ymd_max = date( "Y-m-1", strtotime(".$sagyoYmd.") );                      
     $sy_sagyo_ymd_max = date( "Y-m-1", strtotime( "-0 month".$sagyoYmd."" ) );
    
     $sy_sagyo_ymd_max = date( "Y-m-1", strtotime($sagyoYmd) );     
    

    输出当天某个时间点的时间戳:

    strtotime("01:00:00")<=time()&& time()<=strtotime("02:00:00")
    

    一个时间跨度的算法,计算一个时间,加上一个int类型的区间,如果是节日,周末就跳过,否者就累加:

    function GetSyori_Yotei($koCd){
    		$time_count = "";
          	$i = 0; 
          	$con=dbcon();
    	    	while(true){
    	    	   $furikomi_syori = "";	
                          //得出系统时间的第二天的星期数 $syori_w = date("w", strtotime("+1 day")+ 86400*$i);                       //得出系统时间的第二天的年-月-日
    $syori_check = date("Y-m-d", strtotime("+1 day")+ 86400*$i);                       //对上面得出的这个时间进行验证,是否属于一个节假日
           $holiday_name_syori = holidayCheck($syori_check); if($syori_w!="6" && $syori_w!="0" && empty($holiday_name_syori)){ $furikomi_syori = date("Y-m-d", strtotime("+1 day") + 86400*$i); ////振込予定日 -----------------start //SPS申請振込間営業日数 $sps_days = GetSps_days($koCd); $j = 1; $k = 0; $con=dbcon(); if($sps_days <= "0" || $sps_days ==null){ //振込予定日 = 振込処理日 $furikomi_yotei = $furikomi_syori; } while($k < $sps_days){ $yotei_w = date("w", strtotime("+1 day") + 86400*$i + 86400*$j); $yotei_check = date("Y-m-d", strtotime("+1 day")+ 86400*$i + 86400*$j); $holiday_name_yotei = holidayCheck($yotei_check); if($yotei_w!="6" && $yotei_w!="0" && empty($holiday_name_yotei)){ $furikomi_yotei = date("Y-m-d", strtotime("+1 day") + 86400*$i + 86400*$j); }else{ $j++; continue; } $k++; $j++; } ////振込予定日 -----------------end break; } $i++; } $time_count = $furikomi_syori.':'. $furikomi_yotei; return $time_count; }
     	/** yyyy-mm-dd =>dd;
    	 *  1 - 31 
    	 * **/ 
    	function Day($time){
    		$Day = "";
    		if(!empty($time)){
    			$Day = date("j",strtotime($time));
    		}
    		return $Day;
    	}
    	/** yyyy-mm-dd =>dd;
    	 *  2001 
    	 * **/ 
    	function Year($time){
    		$Year = "";
    		if(!empty($time)){
    			$Year = date("Y",strtotime($time));
    		}
    		return $Year;
    	}
    	/** yyyy-mm-dd =>mm;
    	 *  01-12 
    	 * **/ 
    	function Month($time){
    		$Month = "";
    		if(!empty($time)){
    			$Month = date("m",strtotime($time));
    		}
    		return $Month;
    	}
    

    输出的结果,在某些环境下竟然是不一样的情况,就是因为多加了个双引号和‘..’导致的,因此,这里需要注意

     自己写的一个关于时间计算的函数,一个给定的时间,加一个月,加一年,减一个小时等。

    	/**yyyy-mm-dd =>yyyy-mm+1-dd;
    	 * 1995-1-31 => 1995-2-28
    	 * **/
    	function DateAdd($interval,$number,$time){
    		$dateadd = "";
    		
    		if(!empty($time)){
    			$param = $number ;
    			if($interval == "h"){
    				$param .= " hour" ;
    			}elseif($interval == "m"){
    				$param .= " month" ;
    			}elseif($interval == "d"){
    				$param .= " day" ;
    			}elseif($interval == "y"){
    				$param .= " year" ;
    			}elseif($interval == "w"){
    				$param .= " week" ;
    			}elseif($interval == "mi"){
    				$param .= " minute" ;
    			}
    			$dateadd = date( "Y-m-d", strtotime($param.$time) );
    		}
    		
    		return $dateadd;
    
    	}
    

     调用方法:

    DateAdd('m','+1','2016-07-28');
    

     刚好得出时间 :2016-08-28

     这里有点东西需要注意,这里的计算是按+30天去算的,如果你的时间是2016-07-31的话,找下一个月就是2016-07-01。

  • 相关阅读:
    vue项目刷新当前页面最优解决方式
    nprogress 进度条
    Element Tabs 标签页实现右键自定义菜单
    vue项目中清除定时器(清除定时器不成功)
    Vue.Draggable学习总结 ( Draggable为基于Sortable.js的vue组件,用以实现拖拽功能 )
    vue缓存及路由和生命周期触发的完整流程
    Vue webpack 打包Vue项目后动态配置API接口地址及配置文件
    Vue——element-ui下拉框的几个参数
    Vue——radio、checkbox、select 标签的双向绑定
    Vue——路由的跳转方式
  • 原文地址:https://www.cnblogs.com/sunxun/p/3927747.html
Copyright © 2020-2023  润新知