获取间隔N小时的时间戳

/**
 * 
 * 获得时间区间
 * @param integer $timestamp
 * @param integer $intervalType 区间类型 11,20.5,3:6小时,4:2小时,5:1小时,6:0.5小时,7:10分钟
 * @return array()
 */
function getIntervalTime($timestamp, $intervalType = 1)
{
    switch ($intervalType) 
    {
        case 2:
            // 半天
            $dateinfo = getdate($timestamp); 
            if ($dateinfo['hours'] < 12) 
            {
                $start_time = mktime(12,0,0,$dateinfo['mon'],$dateinfo['mday'] - 1,$dateinfo['year']);
            }
            else 
           {
                $start_time = mktime(0,0,0,$dateinfo['mon'],$dateinfo['mday'],$dateinfo['year']);
            }
                        
            $end_time = $start_time + 43200;    
            break;
        case 3:
            // 6小时
            $dateinfo = getdate($timestamp); 
            $start_time = mktime($dateinfo['hours'] - 6,0,0,$dateinfo['mon'],$dateinfo['mday'],$dateinfo['year']);
            $end_time = $start_time + 21600;
            break;
        case 4:
            // 2小时
            $dateinfo = getdate($timestamp); 
            $start_time = mktime($dateinfo['hours'] - 2,0,0,$dateinfo['mon'],$dateinfo['mday'],$dateinfo['year']);
            $end_time = $start_time + 7200;
            break;
        case 5:
            // 1小时
            $dateinfo = getdate($timestamp); 
            $start_time = mktime($dateinfo['hours'] - 1,0,0,$dateinfo['mon'],$dateinfo['mday'],$dateinfo['year']);
            $end_time = $start_time + 3600;
            break;
        case 6:
            // 0.5小时
            $dateinfo = getdate($timestamp); 
            if($dateinfo['minutes'] < 30)
            {
                $start_time = mktime($dateinfo['hours']-1,30,0,$dateinfo['mon'],$dateinfo['mday'],$dateinfo['year']);
            }
            else 
           {
                $start_time = mktime($dateinfo['hours'],0,0,$dateinfo['mon'],$dateinfo['mday'],$dateinfo['year']);
            }
            
            $end_time = $start_time + 1800;
            break;
        case 7:
            // 10分钟
            $dateinfo = getdate($timestamp);
            $minutes = $dateinfo['minutes'];
            $seconds = $dateinfo['seconds'];
            $end_time = $timestamp - ($minutes % 10) * 60 - $seconds;
            $start_time = $end_time - 600;  
            break;
        default:
            // 1            $dateinfo = getdate($timestamp); 
            $start_time = mktime(0,0,0,$dateinfo['mon'],$dateinfo['mday'] - 1,$dateinfo['year']);
            $end_time = $start_time + 86400;         
    }// end of switch
    return array('stime'=>$start_time,'etime'=>$end_time);
}

//获取前2个小时的时间戳
getIntervalTime(time(),4)
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值