PHP获取时间区间起点时间戳,例如给定一个时间戳,获取所属分钟的起点,例如输入这个属于这个时间段12:13:00 - 12:13:59里面的时间戳,得到的都是13:13:00的时间戳;或者把1小时分成12个5分钟,当前所属5分钟区间的起点时间戳,用于实时数据例如K线图时间段控制
// 给定时间戳
$currentTime = $time;//例如time()
// 获取当前小时
$currentHour = date('H', $currentTime);
// 获取当前时间的分钟部分
$currentMinute = date('i', $currentTime);
// 计算当前分钟所在的区间
$startOfCurrent5Minute = floor($currentMinute / 5) * 5 ;//当前所在5分钟区间0秒
$startOfCurrent15Minute = floor($currentMinute / 15) * 15;//当前所在15分钟区间0秒
$startOfCurrent30Minute = floor($currentMinute / 30) * 30 ;//当前所在30分钟区间0秒
$startOfCurrent60Minute = floor($currentMinute / 60) * 60;//当前所在60分钟区间0秒
// 计算当前小时所在的4小时区间
$startOfCurrent4Hour = floor($currentHour / 4) * 4;
$data['1min'] = strtotime(date('Y-m-d H:i:00', $currentTime));//当前分钟区间起点
$data['5min'] = strtotime(date('Y-m-d H:', $currentTime) . $startOfCurrent5Minute . ':00');//当前5分钟区间起点
$data['15min'] = strtotime(date('Y-m-d H:', $currentTime) . $startOfCurrent15Minute . ':00');//当前15分钟区间起点
$data['30min'] = strtotime(date('Y-m-d H:', $currentTime) . $startOfCurrent30Minute . ':00');//当前30分钟区间起点
$data['60min'] = strtotime(date('Y-m-d H:', $currentTime) . $startOfCurrent60Minute . ':00');//当前60分钟区间起点
// 获取下个4小时区间的起点(0秒)时间戳
$data['4hour'] = strtotime(date('Y-m-d ', $currentTime) . $startOfCurrent4Hour . ':00:00');//当前4小时区间起点
$data['1day'] = strtotime('today midnight');//今天0点
$data['1week'] = strtotime('monday this week');//这周一0点
$data['1mon'] = strtotime('first day of this month');//这个月1号0点
var_dump($data);
每天进步一点点