本文作者:DurkBlue

php获取当前时间前一天,PHP获取当前时间之后(之前)的时间(昨天、今天、明天)指定时间

DurkBlue 2021-09-12 2650
php获取当前时间前一天,PHP获取当前时间之后(之前)的时间(昨天、今天、明天)指定时间摘要: PHP计算当前时间之后(之前)的时间PHP中有一个非常厉害的函数,strtotime()函数,这个函数有一个异常厉害的使用方法,手册上说的有,但是估计在实际应用中能够想到的人不多。...

PHP计算当前时间之后(之前)的时间

PHP中有一个非常厉害的函数,strtotime()函数,这个函数有一个异常厉害的使用方法,手册上说的有,但是估计在实际应用中能够想到的人不多。

我为了计算出当前时间N天后的日期时,也是自己写了一个很复杂的函数之后才无意间发现这个函数的,现在记录下来以免以后又忘记了

当前时间一周之后的时间戳:strtotime(”+1 week”),这样就行了,一周之后是这样我想N周之后大家应该也就知道了吧,嘿嘿……

然后举一反三,一个月之后呢?应该是strtotime(”+1 months”);

5天之后的时间呢当然是:strtotime(”+5 days”);

12个小时之后呢?strtotime(”+12 hours”);

20分钟之后当然是:strtotime(”+20 minutes”);

30秒之后就是strtotime(”+30 seconds”);

上周六的时间呢?应该是 strtotime(”Last Saturday“);

下周六当然是strtotime(”Next Saturday”);了


当然你也可以写成这样复杂的,当前时间一个月零两周,零三天,零4个小时16分钟32秒后的时间:

date(”Y-m-d H:i:s”,strtotime(”+1 months +1 week +3 days +4 hours +16 minutes +32 seconds”));

当前时间之后的时间是“+”,之前的时间当然用“-”就可以了!

<?php
//本周一
echo date('Y-m-d', (time() - ((date('w') == 0 ? 7 : date('w')) - 1) * 24 * 3600));//w为星期几的数字形式,这里0为周日
//本周日
echo date('Y-m-d', (time() + (7 - (date('w') == 0 ? 7 : date('w'))) * 24 * 3600)); //同样使用w,以现在与周日相关天数算
//上周一
echo date('Y-m-d', strtotime('-1 monday', time())); //无论今天几号,-1 monday为上一个有效周未
//上周日
echo date('Y-m-d', strtotime('-1 sunday', time())); //上一个有效周日,同样适用于其它星期
//本月一日
echo date('Y-m-d', strtotime(date('Y-m', time()) . '-01 00:00:00')); //直接以strtotime生成
//本月最后一日
echo date('Y-m-d', strtotime(date('Y-m', time()) . '-' . date('t', time()) . ' 00:00:00')); //t为当月天数,28至31天
//上月一日
echo date('Y-m-d', strtotime('-1 month', strtotime(date('Y-m', time()) . '-01 00:00:00'))); //本月一日直接strtotime上减一个月
//上月最后一日
echo date('Y-m-d', strtotime(date('Y-m', time()) . '-01 00:00:00') - 86400); //本月一日减一天即是上月最后一日
?>
开发过程中,常用日期处理函数,时间戳处理函数等,如下讲解:


<?php

    echo date('Y-m-d h:i:s',time());//运行结果(年月日时分秒,“-”间隔):2014-09-12 06:28:32
    echo date('Y-m-d',time());//运行结果(年月日,“-”间隔):2014-09-12
    echo date('Y-m-d',strtotime(date('Y-m-d', time()-86400)));//运行结果(当前日期前一天的年月日,“-”间隔):2014-09-11
    echo date('Ymd',time());//运行结果(年月日,无间隔):20140912
    echo date('m-d',time());//运行结果(月日,“-”间隔):09-12
    echo str_replace("-","月",date('m-d',time()-date('w',time())*86400))."日";//运行结果(月日,汉字显示间隔):09月12日
    echo date('w',time());//运行结果(星期几):5
    echo time();//运行结果(当前日期时间的秒数):1410503809
    echo strtotime(date('Y-m-d',time()));//运行结果(当前日期秒数,具体到天):1410503809
    echo date('Y-m-d',strtotime(date('Y-m-d', time()))-date('w',strtotime(date('Y-m-d', time())))*86400);//运行结果(当前日期所属自然周的起始日期即周日的日期,具体到天,“-”间隔):2014-09-07
 ?>


<?php
    /**date 2015-04-11
     * author http://www.lai18.com
     **/
    echo date("Ymd",strtotime("now")), "\n";
    echo date("Ymd",strtotime("-1 week Monday")), "\n";    
    echo date("Ymd",strtotime("-1 week Sunday")), "\n";    
    echo date("Ymd",strtotime("+0 week Monday")), "\n";    
    echo date("Ymd",strtotime("+0 week Sunday")), "\n";    
    echo "*********第几个月:";    
    echo date('n');    
    echo "*********本周周几:";    
    echo date("w");    
    echo "*********本月天数:";    
    echo date("t");    
    echo "*********";    
    echo '<br>上周起始时间:<br>';    
    echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1-7,date("Y"))),"\n";    
    echo date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7-7,date("Y"))),"\n";    
    echo '<br>本周起始时间:<br>';    
    echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y"))),"\n";    
    echo date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))),"\n";    
    echo '<br>上月起始时间:<br>';    
    echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m")-1,1,date("Y"))),"\n";    
    echo date("Y-m-d H:i:s",mktime(23,59,59,date("m") ,0,date("Y"))),"\n";    
    echo '<br>本月起始时间:<br>';    
    echo date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),1,date("Y"))),"\n";    
    echo date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("t"),date("Y"))),"\n";    
    $season = ceil((date('n'))/3);//当月是第几季度
    echo '<br>本季度起始时间:<br>';    
    echo date('Y-m-d H:i:s', mktime(0, 0, 0,$season*3-3+1,1,date('Y'))),"\n";    
    echo date('Y-m-d H:i:s', mktime(23,59,59,$season*3,date('t',mktime(0, 0 , 0,$season*3,1,date("Y"))),date('Y'))),"\n";    
    $season = ceil((date('n'))/3)-1;//上季度是第几季度
    echo '<br>上季度起始时间:<br>';    
    echo date('Y-m-d H:i:s', mktime(0, 0, 0,$season*3-3+1,1,date('Y'))),"\n";    
    echo date('Y-m-d H:i:s', mktime(23,59,59,$season*3,date('t',mktime(0, 0 , 0,$season*3,1,date("Y"))),date('Y'))),"\n";
?>

首先说明一下date()函数的格式:



date('Y-m-d',timestamp); //输出年-月-日
date('Y-m-d H:i:s',timestamp); //输出年-月-日 时:分:秒



php获取今天日期



date("Y-m-d",strtotime("today")); //strtotime('today')输出今天的开始时间戳

date("Y-m-d",time()); //time()输出当前的秒时间戳



php获取昨天日期



date("Y-m-d",strtotime("-1 day")); 或 date("Y-m-d",strtotime("yesterday"));



php获取明天日期



date("Y-m-d",strtotime("+1 day")); 或 date("Y-m-d",strtotime("tomorrow "));



php获取7天后日期



date("Y-m-d",strtotime("+7 day"));



php获取30天后日期



date("Y-m-d",strtotime("+30 day"));



php获取一周后日期



date("Y-m-d",strtotime("+1 week"));



php获取一个月后日期



date("Y-m-d",strtotime("+1 month"));



php获取一个月前日期



date("Y-m-d",strtotime("last month")); 或 date("Y-m-d",strtotime("-1 month"));



php获取一年后日



date("Y-m-d",strtotime("+1 year"));



php获取一周零两天四小时五分钟两秒后时间



date("Y-m-d H:i:s",strtotime("+1 week 2 days 4 hours 5 minute 2 seconds"));



php获取下个星期四日期



date("Y-m-d",strtotime("next Thursday"));



php获取上个周一日期



date("Y-m-d",strtotime("last Monday"));



php获取今天起止时间戳



mktime(0,0,0,date('m'),date('d'),date('Y'));
mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;



php获取昨天起止时间戳



mktime(0,0,0,date('m'),date('d')-1,date('Y'));
mktime(0,0,0,date('m'),date('d'),date('Y'))-1;



php获取上周起止时间戳



mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));



php获取本月起止时间戳



mktime(0,0,0,date('m'),1,date('Y'));
mktime(23,59,59,date('m'),date('t'),date('Y'));


此篇文章由DurkBlue发布,感谢转载需要请注明来处
文章投稿或转载声明

来源:DurkBlue版权归原作者所有,转载请保留出处。本站文章发布于 2021-09-12
温馨提示:文章内容系作者个人观点,不代表DurkBlue博客对其观点赞同或支持。

赞(2)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏

阅读
分享