当前位置:首页 > 技术教程 > 技术文章 > 正文内容

PHP获取今天、明天、上周、本周、上月、本月、本季度、上季度时间段方法

atao2年前 (2020-06-18)技术文章1109

strtotime()函数


1
2
3
//date('n') 第几个月 
//date("w") 本周周几 
//date("t") 本月天数



时间段:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//当前时间
echo date("Y-m-d H:i:s",time());
 
//明天此时时间
echo date("Y-m-d H:i:s",strtotime("+1 day"));
 
//指定时间
echo date("Y-m-d H:i:s",strtotime("-1 day"));
 
//下星期时间
echo date("Y-m-d H:i:s",strtotime("+1 week"))
 
//上个星期此时时间
echo date("Y-m-d H:i:s",strtotime("-1 week"));
 
//下星期几时间
echo date("Y-m-d H:i:s",strtotime("next Thursday"));
 
//指定时间
echo date("Y-m-d H:i:s",strtotime("last Thursday"));


以上PHP时间戳函数示例可知,strtotime能将任何英文文本的日期时间描述解析为Unix时间戳,我们结合mktime()或date()格式化日期时间获取指定的时间戳,实现所需要的日期时间


今天

1
2
$startDate mktime(0,0,0,date("m"),date("d"),date("Y"));
$endDate mktime(0,0,0,date('m'),date('d')+1,date('Y'))-1;


昨天

1
2
$startDate mktime(0,0,0,date("m"),date("d")-1,date("Y"));
$endDate mktime(0,0,0,date("m"),date("d"),date("Y"))-1;


明天

1
2
$startDate mktime(0,0,0,date("m"),date("d")+1,date("Y"));
$endDate mktime(0,0,0,date("m"),date("d")+2,date("Y"))-1;


本周

1
2
3
$w date("w");
$startDate mktime(0,0,0,date("m"),date("d")-$w+1,date("Y"));
$endDate=mktime(23,59,59,date('m'),date('d')-date('w')+7,date('Y'));


上周

1
2
$startDate=mktime(0,0,0,date('m'),date('d')-date('w')+1-7,date('Y'));
$endDate=mktime(23,59,59,date('m'),date('d')-date('w')+7-7,date('Y'));


下周

1
2
$startDate=mktime(0,0,0,date('m'),date('d')-date('w')+7+1,date('Y'));
$endDate=mktime(23,59,59,date('m'),date('d')-date('w')+7+7,date('Y'));


本月

1
2
$startDate mktime(0,0,0,date("m"),1,date("Y"));
$endDate mktime(23,59,59,date('m'),date('t'),date('Y'))-1;


上月

1
2
$startDate mktime(0,0,0,date("m")-1,1,date("Y"));
$endDate mktime(0,0,0,date("m"),1,date("Y"))-1;


下月

1
2
$startDate mktime(0,0,0,date("m")+1,1,date("Y"));
$endDate mktime(0,0,0,date("m")+2,1,date("Y"))-1;


本季度

1
2
3
4
5
6
7
8
9
10
11
12
$getMonthDays date("t",mktime(0, 0 , 0,date('n')+(date('n')-1)%3,1,date("Y")));//本季度未最后一月天数 
echo '<br>本季度:<br>'
echo date('Y-m-d H:i:s'mktime(0, 0, 0,date('n')-(date('n')-1)%3,1,date('Y'))),"\n"
echo date('Y-m-d H:i:s'mktime(23,59,59,date('n')+(date('n')-1)%3,$getMonthDays,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";


今年

1
2
$startDate mktime(0,0,0,1,1,date("Y"));
$endDate mktime(0,0,0,1,1,date("Y")+1)-1;

结果如:

1483200000
1514735999

格式化:

2017-01-01 00:00:00
2017-12-31 23:59:59



语法


mktime(hour,minute,second,month,day,year,is_dst)

参数 描述

hour 可选。规定小时。

minute 可选。规定分钟。

second 可选。规定秒。

month 可选。规定用数字表示的月。

day 可选。规定天。

year 可选。规定年。在某些系统上,合法值介于 1901 - 2038 之间。不过在 PHP 5 中已经不存在这个限制了。

is_dst 

可选。如果时间在日光节约时间(DST)期间,则设置为1,否则设置为0,若未知,则设置为-1。


自 5.1.0 起,is_dst 参数被废弃。因此应该使用新的时区处理特性。


扫描二维码推送至手机访问。

版权声明:本文由武景涛的博客发布,如需转载请注明出处。

本文链接:http://www.yizhanhongtu.cn/post/5.html

分享给朋友:

相关文章

超强的随机语录API接口,免费调用

超强的随机语录API接口,免费调用

API[ReplyVisible]http://www.yizhanhongtu.cn/api/api.php?type=1&text=json[/ReplyVisible] 支持协...

jQuery Growl 插件(消息提醒) 弹出层插件

jQuery Growl 插件(消息提醒) 弹出层插件

jQuery Growl 插件(消息提醒) 允许您很容易地在一个覆盖层显示反馈消息。消息会在一段时间后自动消失,不需要单击"确定"按钮等。用户也可以通过移动鼠标或点击关闭按钮加快隐...

TP6常用的增删改查方法合集(DB类+模型类)

TP6常用的增删改查方法合集(DB类+模型类)

注意:1、注意引入DB和模型的门面类2、想要添加视图文件,一定要先composer引入view模板引擎3、下面方法来自官方手册,只是写了一些个人常用的,并非齐全。增(添加)DB类方法方法一: ...

curl实用请求方法函数(个人用),含支付pem校验

curl实用请求方法函数(个人用),含支付pem校验

curl 是常用的命令行工具,用来请求 Web 服务器。它的名字就是客户端(client)的 URL 工具的意思。它的功能非常强大,命令行参数多达几十种。如果熟练的话,完全可以取代 Postman 这...

php版微信公众平台之微信网页登陆授权示例详解

php版微信公众平台之微信网页登陆授权示例详解

之前在项目中遇到网页授权登录这个需求,就对此做些总结记录。OAuth2.0授权:OAuth是一个开放协议,允许用户让第三方应用以安全且标准的方式获取该用户在某一网站、移动或桌面应用上存储的个人信息,而...

ThinkPHP框架整合微信支付统一下单接口之Native扫码支付模式

ThinkPHP框架整合微信支付统一下单接口之Native扫码支付模式

此篇文章主要介绍了ThinkPHP6框架下整合微信支付之Native手册里面有的东西不多介绍,请求参数、返回结果之类的请移步官方手册查看。本文主要是通过一个demo实例进行讲解微信支付之统一下单接口。...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。