PHP获取今天,昨天,本周,本月,季度,年份等特殊时间戳方法整理
后台-插件-广告管理-内容页头部广告(手机) |
获取当前时间戳与日期格式时间
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;
}
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。
在线投稿:投稿 站长QQ:1888636
后台-插件-广告管理-内容页尾部广告(手机) |