首页 > 后端开发 > 正文

php 指定时间退后或提前N个月的函数怎么写

2024-09-05 20:04:50 | 我爱编程网

今天我爱编程网小编整理了php 指定时间退后或提前N个月的函数怎么写相关信息,希望在这方面能够更好帮助到大家。

本文目录一览:

php 指定时间退后或提前N个月的函数怎么写

PHP加月份的bug问题

这本身算是PHP的一个bug,就是如果本月有31天,那么在本月31日的基础上增加(或减少)n个月,如果目标月份的天数少于31,那么就会把相差的天数累加到下一个月,比如今天是2019-7-31,有31日,那么增加一个月就是2019-8-31,这个没问题,但如果是增加两个月,按理是2019-9-31,但9月是30天,那么就变成2019-10-1了。2月份是个特殊月份,只有28天或29天,如果目标月份刚好是2月,误差就会更大(而且即使当前月份的天数是30,遇到目标月份是2月也一样会有误)。
解决办法最好是自己写个处理月份加减的函数,比如当要计算的日期是29、30、31时,就要做特殊的处理,其他日期就按正常方法处理。下面是处理要计算的日期是31时的方法,其他日期自己处理:
date('Y-m-d', strtotime('last day of +2 month',strtotime('2019-12-31')))

php 指定时间退后或提前N个月的函数怎么写

php 指定时间退后或提前N个月的函数怎么写

    /** 
     * 返回某个时间几月前或及月后的时间戳 
     * @$datetime 指定时间戳
     * @$num 增减月份(1,-2)
     * @return datetime 
     */  
    public static function getEveryMonth($datetime,$num){
        $year_month = date("Y-m",$datetime);
        $time_day = date("d",$datetime);
        $H = date("H",$datetime);
        $i = date("i",$datetime);
        $s = date("s",$datetime);
        
        if($num>0){
            $act = "+".abs($num)." month";
        }else{
            $act = "-".abs($num)." month";
        }
        $time = strtotime($act,strtotime($year_month));
        $time_str = date("Y-m-d",$time);
        
        if(date("t",$time)>$time_day){
            $return_time = mktime($H,$i,$s,date("m",$time),date("d",$time),date("Y",$time));
        }else{
            $return_time = mktime($H,$i,$s,date("m",$time),date("t",$time),date("Y",$time));
        }
        return $return_time;  
    }

php 指定时间退后或提前N个月的函数怎么写

php 时间加减问题,比如我的时间:$date_t=$_post[date_t] 我需要输出这个时间的二天,或者加一天,怎么写

我爱编程网(https://www.52biancheng.com)小编还为大家带来php 时间加减问题,比如我的时间:$date_t=$_post[date_t] 我需要输出这个时间的二天,或者加一天,怎么写的相关内容。

这个,你要知道,时间戳的概念不??
php读取的时候就是用时间戳的。
$time = time();
这个代码实现的就是 获取当前的时间戳,如果你要根据本地的时间再加上2天或1天的话,
可以用js的函数解读时间戳。
//功能:检查日期格式是否是有效格式
function checkIsValidDate(str)
{
if(str == "") //如果参数为空,则返回false
return false;
var arrDate = str.split("-"); //把参数用split函数分割成数组,它等同与PHP中的explode函数
if(parseInt(arrDate[0],10) < 100) //如果年份小于100,则表示是21世纪
arrDate[0] = 2000 + parseInt(arrDate[0],10) + "";
var date = new Date(arrDate[0],(parseInt(arrDate[1],10) -1)+"",arrDate[2]); //格式化为日期格式
if(date.getYear() == arrDate[0] //判断格式化后日期的年,月,日是否和参数的相等,相等则是有效格式
&& date.getMonth() == (parseInt(arrDate[1],10) -1)+""
&& date.getDate() == arrDate[2])
return true;
else
return false;
}
//功能:检查开始时间是否小于结束日期
//参数:strStart 开始日期,strEnd 结束日期
function checkDateEarlier(strStart,strEnd)
{
if(checkIsValidDate(strStart) == false || checkIsValidDate(strEnd) == false)
return false; //检查日期格式是否有效
if (( strStart == "" ) || ( strEnd == "" )) //检查日期是否为空
return false;
var arr1 = strStart.split("-");
var arr2 = strEnd.split("-");
var date1 = new Date(arr1[0],parseInt(arr1[1].replace(/^0/,""),10) - 1,arr1[2]);
var date2 = new Date(arr2[0],parseInt(arr2[1].replace(/^0/,""),10) - 1,arr2[2]);
if(arr1[1].length == 1) //将月份格式化为08这种形式
arr1[1] = "0" + arr1[1];
if(arr1[2].length == 1) //将日格式化为08这种形式
arr1[2] = "0" + arr1[2];
if(arr2[1].length == 1) //将月份格式化为08这种形式
arr2[1] = "0" + arr2[1];
if(arr2[2].length == 1) //将日格式化为08这种形式
arr2[2]="0" + arr2[2];
var d1 = arr1[0] + arr1[1] + arr1[2]; //将开始日期组合成一个字符串
var d2 = arr2[0] + arr2[1] + arr2[2]; //将结束日期组合成一个字符串
if(parseInt(d1,10) > parseInt(d2,10)) //将两个字符串转化成整数,如果d1>d2则开始日期大于结束日期
return false;
else
return true;
} 我爱编程网

以上,就是我爱编程网小编给大家带来的php 指定时间退后或提前N个月的函数怎么写全部内容,希望对大家有所帮助!更多相关文章关注我爱编程网:www.52biancheng.com

免责声明:文章内容来自网络,如有侵权请及时联系删除。
与“php 指定时间退后或提前N个月的函数怎么写”相关推荐
PHP中用日期函数显示当前年月日喝当前时间(php时间函数问题)
PHP中用日期函数显示当前年月日喝当前时间(php时间函数问题)

PHP中用日期函数显示当前年月日喝当前时间1、格式化输出时间echodate("Y-m-dH:i:s",time());//格式化输出时间//第二个时间是一个时间戳echodate("Y-m-dH:i:s",0);//0和负数返回的是格林尼治时间元年。echodate("Y年m月d日H:i:s",0);echodate(“n”,time());//月echodate(

2024-08-02 09:56:33
php运行时间函数 PHP中用日期函数显示当前年月日喝当前时间
php运行时间函数 PHP中用日期函数显示当前年月日喝当前时间

求php函数用时间控制程序运行写好了&lt;?phpdate_default_timezone_set("Asia/Shanghai");$d=date('H');if(0&lt;=$d&amp;&amp;$d&lt;=8){echo"停止运行";}else{echo"正在运行";}?&gt;PHP中用日期函数显示当前年月日喝当前时间1、格式化输出

2024-08-05 12:33:23
php制作时间函数 PHP中用日期函数显示当前年月日喝当前时间
php制作时间函数 PHP中用日期函数显示当前年月日喝当前时间

PHP中用日期函数显示当前年月日喝当前时间1、格式化输出时间echodate("Y-m-dH:i:s",time());//格式化输出时间//第二个时间是一个时间戳echodate("Y-m-dH:i:s",0);//0和负数返回的是格林尼治时间元年。echodate("Y年m月d日H:i:s",0);echodate(“n”,time());//月echodate(

2024-08-16 02:25:52
PHP自定义函数时怎么指定参数类型?
PHP自定义函数时怎么指定参数类型?

运用php编写一个自定义函数,三角形的底和高为函数的两个参数,通过它们计算面积和周长&lt;?phpheader("Content-type:text/html;charset=gb2312");//设置面积计算函数function sanJiaoXingMianJi($bianchang,$gaodu){ $mianJi = ($bianchang*$gaodu)/2; echo $mia

2024-08-01 02:16:47
php中只获取时间中的小时函数我只想知道现在是几点就可以了(PHP中用日期函数显示当前年月日喝当前时间)
php中只获取时间中的小时函数我只想知道现在是几点就可以了(PHP中用日期函数显示当前年月日喝当前时间)

php中只获取时间中的小时函数我只想知道现在是几点就可以了使用date函数语法:stringdate(string$format[,int$timestamp])返回将整数timestamp按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp是可选的,默认值为time()。H小时,24小时格式,有前导零00到23echod

2024-07-29 01:17:03
php自定义函数前加个&有什么用?
php自定义函数前加个&有什么用?

php自定义函数前加个&有什么用?函数的引用对于函数的引用,主要区别在于内存性能~function&amp;load_message和functionload_message,第一个在使用的时候也要用&amp;load_message声明为一个引用返回,而第二个只是将函数的结果赋值到一个变量中,该函数一般用于递归作用。至于引用,还是建议你自己写几个例子,测试一下。就明白了,只看字面意

2024-08-15 15:49:45
php 根据一个时间戳,怎么判断今天0时和24时的时间戳?
php 根据一个时间戳,怎么判断今天0时和24时的时间戳?

php根据一个时间戳,怎么判断今天0时和24时的时间戳?$today=date('Y-m-d',$time)//这个是根据时间获取当前时间戳的年月日,在把$today转化成时间戳,strtotime($today),就能获得当天0点的时间戳了,想要获取24点的时间戳,那就是明天0点的时间戳,$tomorrow=date('Y-m-d',strtotime("+1day",$time)),24

2024-08-07 08:21:52
php中如何获得当前时间?
php中如何获得当前时间?

phpdate函数phpdate函数是什么呢?不知道的小伙伴来看看小编今天的分享吧!1、定义和用法date()函数格式化本地日期和时间,并返回格式化的日期字符串。2、语法date(format,timestamp);返回将整数timestamp按照给定的格式字串而产生的字符串。如果没有给出时间戳则使用本地当前时间。换句话说,timestamp是可选的,默认值为time()

2024-07-17 20:25:39