您现于de位置乃:亚博 > APP实例

亚博 2019-07-31 APP实例 1387

APP获取当日 明天 上周 本周 上month 本month 本季度 上季度时间段方法


strtotime()函数


//date('n') 第几个month 
//date("w") 本周周几 
//date("t") 本month天数



时间段:

//当前时间
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"));


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


当日

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


前日

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


明天

$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;


本周

$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'));


上周

$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'));


下周

$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'));


本month

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


上month

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


下month

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


本季度

$getMonthDays = date("t",mktime(0, 0 , 0,date('n')+(date('n')-1)%3,1,date("Y")));//本季度未最后1month天数 
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);//当month乃第几季度
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";


今年

$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 可选.规定用数字表示demonth.

day 可选.规定天.

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

is_dst 

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


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



评论