自定义获取时间戳以及获取指定时间周,月,季,年的开始时间和结束时间戳

/*传入时间戳格式,组装时间戳为数组. 注意:Y-m-d格式
    *如果参数1是今天时间戳且第二个参数为空,返回0点至当前时间的时间戳.
    如果不是且第二个为空,返回0点至0点的时间戳
    如果第二个参数存在,组装时间戳为数组进行返回*/
    public function timeStamp($time, $time1 = null){
    	$time = is_numeric($time)?$time:strtotime($time);
    	if($time1)
    		$time1 = is_numeric($time1)?$time1:strtotime($time1);
    	if($time == strtotime(date('Y-m-d')) && empty($time1)){
    		$timeo = $time;
    		$timet = time();
    	}elseif(empty($time1)){
    		$timeo = $time;
    		$timet = $time+86400;
    	}else{
    		$timeo = $time;
    		$timet = $time1;
    	}
    	return compact(['time', 'timet']);
    }
//查询当前所在周的开始时间和结束时间的时间戳
	public function getWeekTime($date = NULL){
	    $timestamp=empty($date)?strtotime('now'):(is_numeric($date)?$date:strtotime($date));
	    $w=strftime('%w',$timestamp);
	    $date=array();
	    $time=$timestamp-($w-1)*86400;
	    $timet=$timestamp+(7-$w)*86400;
    	return compact('time', 'timet');
	}
//查询当前所在月的开始时间和结束时间的时间戳
	public function getMonthTime($date = NULL){
	    $timestamp=empty($date)?strtotime('now'):(is_numeric($date)?$date:strtotime($date));
	    $m=strftime('%e',$timestamp);
	    $days = date("t", $timestamp);
	    $time = $timestamp-($m-1)*86400;
	    $timet = $timestamp+($days+1-$m)*86400;
	    return compact('time', 'timet');
	}
//查询当前所在季的开始时间和结束时间的时间戳
	public function getSeasonTime($date){
		$date = is_numeric($date)?date('Y-m-d H:i:s', $date):$date;

		$season = ceil((int)str_cut($date,'-',1)/3);
		$time = mktime(0,0,0,($season - 1) *3 +1,1,str_cut($date));
		$timet = mktime(0,0,0,$season * 3,1,str_cut($date));

		return compact('time', 'timet');
	}
//查询当前所在年的开始时间和结束时间的时间戳
	public function getYearTime($date){
		$date = is_numeric($date)?date('Y-m-d H:i:s', $date):$date;
		$time = mktime(0,0,0,1,1,str_cut($date));
		$timet = mktime(0,0,0,1,1,str_cut($date)+1);

		return compact('time', 'timet');
	}

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值