PHP获取今天,昨天,本周,本月,季度,年份等特殊时间戳方法整理

发布时间:2023年12月31日

获取当前时间戳与日期格式时间

time()? ?//获取当前十位时间戳

msectime() //获取当前十三位时间戳

date('Y-m-d h:m:s') //获取当前日期格式时间

=======

今天时间戳与日期

时间戳

$startTime = strtotime(date('Y-m-d').'00:00:00');

$overTime = strtotime(date('Y-m-d').'23:59:59');

日期格式

$startDate=date('Y-m-d').' 00:00:00';

$overDate=date('Y-m-d').' 00:00:00';

=========

昨天时间戳与日期

时间戳

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

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

日期格式

$startDate=date("Y-m-d H:i:s",$startTime);

$overDate =date("Y-m-d H:i:s",$overTime);

$time=date('d')-1;

$startDate=date("Y-m-".$time." 00:00:00",time());

$overDate=date("Y-m-".$time." 23:59:59",time());

===========

本周时间戳与日期

时间戳

date( )函数中 date(‘w’) 可以获取今天是本周第几天,通过简单处理就可以得到本周的起始以及结束时间。

这种思路和方法可以推广到上周的起始和结束时间。

方法一

//本周开始时间戳

$startTime = mktime(0,0,0,date('m'),date('d')-date('w')+1,date('y'));

//本周结束时间戳

$overTime = mktime(23,59,59,date('m'),date('d')-date('w')+7,date('y'));

方法二

$nowDate = date("Y-m-d");

$week = date('w',strtotime($nowDate));

$startTime = strtotime("$nowDate -".($week ? $week - 1 : 6).' days');//本周第一天

$overTime = $start_time + 86400*7 -1; //本周最后一天

日期格式

//本周开始时间戳

$startTime = date("Y-m-d H:i:s",mktime(0,0,0,date('m'),date('d')-date('w')+1,date('y')));

//本周结束时间戳

$overTime = date("Y-m-d H:i:s",mktime(23,59,59,date('m'),date('d')-date('w')+7,date('y')));

===============

本月时间戳和日期

时间戳

//本月起始时间时间戳

$startTime =mktime(0,0,0,date('m'),1,date('Y'));??

//本月结束时间时间戳

$overTime =mktime(23,59,59,date('m'),date('t'),date('Y'));?

//本月起始时间日期格式

$startTime = date("Y-m-d H:i:s",mktime(0,0,0,date('m'),1,date('Y')));??

//本月结束时间日期格式

$overTime = date("Y-m-d H:i:s",mktime(23,59,59,date('m'),date('t'),date('Y')));

本季度时间戳和日期

时间戳

?//获取当前季度

$season = ceil((date('m'))/3);

?//当前季度开始时间戳

$startTime = mktime(00,00,00,$season*2+1,1,date('Y'));

?//获取当前季度结束时间戳

$overTime = mktime(23,59,59,$season*3,date('t',mktime(0, 0 , 0,$season*3,1,date("Y"))),date('Y'));

date("Y-m-d",$startTime)

date("Y-m-d",$overTime)

当前年时间戳和日期

时间戳

//本年开始??

$startTime? = strtotime(date("Y",time())."-1"."-1");?

//本年结束

$overTime? = strtotime(date("Y",time())."-12"."-31");

日期格式

//本年开始??

$startTime? = date("Y-m-d H:i:s",strtotime(date("Y",time())."-1"."-1"));

//本年结束

$overTime? =? date("Y-m-d H:i:s",strtotime(date("Y",time())."-12"."-31"))

strtotime函数获取描述对应时间

明天当前时间

strtotime("+1 day")//时间戳

date("Y-m-d H:i:s",strtotime("+1 day"))//日期格式

明天当前时间

strtotime("+1 day")//时间戳

date("Y-m-d H:i:s",strtotime("+1 day"))//日期格式

昨天当前时间

strtotime("-1 day")//时间戳

date("Y-m-d H:i:s",strtotime("-1 day"))//日期格式

下个星期当前时间

strtotime("+1 week")//时间戳

date("Y-m-d H:i:s",strtotime("+1 week"))//日期格式

上个星期当前时间

strtotime("-1 week")//时间戳

date("Y-m-d H:i:s",strtotime("-1 week"))//日期格式

下星期几当前时间

strtotime("next Thursday")//时间戳

date("Y-m-d H:i:s",strtotime("next Thursday"))//日期格式

上星期几当前时间

strtotime("last Thursday")//时间戳

date("Y-m-d H:i:s",strtotime("last Thursday"))//日期格式

/**特定时间戳函数

?* @param $targetTime

?*/

function gettimestamp($targetTime){

? ? switch ($targetTime){

? ? ? ? case 'today'://今天

? ? ? ? ? ? $timeamp['start'] = strtotime(date('Y-m-d'));

? ? ? ? ? ? $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));

? ? ? ? ? ? break;

? ? ? ? case 'yesterday'://昨天

? ? ? ? ? ? $timeamp['start'] = strtotime(date('Y-m-d',strtotime('-1 day')));

? ? ? ? ? ? $timeamp['over'] = strtotime(date('Y-m-d'));

? ? ? ? ? ? break;

? ? ? ? case 'beforyesterday'://前天

? ? ? ? ? ? $timeamp['start'] = strtotime(date('Y-m-d',strtotime('-2 day')));

? ? ? ? ? ? $timeamp['over'] = strtotime(date('Y-m-d',strtotime('-1 day')));

? ? ? ? ? ? break;

? ? ? ? case 'beforweek'://本周

? ? ? ? ? ? $timeamp['start'] = strtotime(date("Y-m-d H:i:s",mktime(0, 0 , 0,date("m"),date("d")-date("w")+1,date("Y"))));

? ? ? ? ? ? $timeamp['over'] = strtotime(date("Y-m-d H:i:s",mktime(23,59,59,date("m"),date("d")-date("w")+7,date("Y"))));

? ? ? ? ? ? break;

? ? ? ? case 'nowmonth'://本月

? ? ? ? ? ? $timeamp['start'] = strtotime(date('Y-m-01'));

? ? ? ? ? ? $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));

? ? ? ? ? ? break;

? ? ? ? case 'permonth'://上月

? ? ? ? ? ? $timeamp['start'] = strtotime(date('Y-m-01',strtotime('-1 month')));

? ? ? ? ? ? $timeamp['over'] = strtotime(date('Y-m-01'));

? ? ? ? ? ? break;

? ? ? ? case 'preweek'://上周 注意我们是从周一开始算

? ? ? ? ? ? $timeamp['start'] = strtotime(date('Y-m-d',strtotime('-2 week Monday')));

? ? ? ? ? ? $timeamp['over'] = strtotime(date('Y-m-d',strtotime('-1 week Monday +1 day')));

? ? ? ? ? ? break;

? ? ? ? case 'nowweek'://本周

? ? ? ? ? ? $timeamp['start'] = strtotime(date('Y-m-d',strtotime('-1 week Monday')));

? ? ? ? ? ? $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));

? ? ? ? ? ? break;

? ? ? ? case 'preday'://30

? ? ? ? ? ? $timeamp['start'] = strtotime(date('Y-m-d'),strtotime($param.' day'));

? ? ? ? ? ? $timeamp['end'] = strtotime(date('Y-m-d'));

? ? ? ? ? ? break;

? ? ? ? case 'nextday'://30

? ? ? ? ? ? $timeamp['start'] = strtotime(date('Y-m-d'));

? ? ? ? ? ? $timeamp['over'] = strtotime(date('Y-m-d'),strtotime($param.' day'));

? ? ? ? ? ? break;

? ? ? ? case 'preyear'://去年

? ? ? ? ? ? $timeamp['start'] = strtotime(date('Y-01-01',strtotime('-1 year')));

? ? ? ? ? ? $timeamp['over'] = strtotime(date('Y-12-31',strtotime('-1 year')));

? ? ? ? ? ? break;

? ? ? ? case 'nowyear'://今年

? ? ? ? ? ? $timeamp['start'] = strtotime(date('Y-01-01'));

? ? ? ? ? ? $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));

? ? ? ? ? ? break;

? ? ? ? case 'quarter'://季度

? ? ? ? ? ? $quarter = ceil((date('m'))/3);

? ? ? ? ? ? $timeamp['start'] = mktime(0, 0, 0,$quarter*3-2,1,date('Y'));

? ? ? ? ? ? $timeamp['over'] = mktime(0, 0, 0,$quarter*3+1,1,date('Y'));

? ? ? ? ? ? break;

? ? ? ? default:

? ? ? ? ? ? $timeamp['start'] = strtotime(date('Y-m-d'));

? ? ? ? ? ? $timeamp['over'] = strtotime(date('Y-m-d',strtotime('+1 day')));

? ? ? ? ? ? break;

? ? }

? ? return $timeamp;

}

文章来源:https://blog.csdn.net/yu502586512/article/details/135314101
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。