php - 如何在数组中创建时间范围步长这样的结果 - PHP
问题描述
我需要像示例这样的数组,如果可以为 step、start、end 设置选项会更好
[
[
"07:30:00",
"08:00:00",
],
[
"08:00:00",
"08:30:00",
],
....
[
"23:30:00",
"00:00:00",
],
]
解决方案
我猜最好的解决方案是:
function timeSteps($step, $start, $end){
$stepHours = substr($step, 0, 2);
$stepMinutes = substr($step, 3, 2);
$stepSeconds = substr($step, 6, 2);
$startTime = Carbon::createFromFormat('H:i:s', $start);
$endTime = Carbon::createFromFormat('H:i:s', $end);
$result = [];
while ($startTime->lt($endTime)) {
$item = [];
array_push($item, $startTime->format('H:i:s'));
$startTime->addHours($stepHours);
$startTime->addMinutes($stepMinutes);
$startTime->addSeconds($stepSeconds);
array_push($item, $startTime->format('H:i:s'));
array_push($result, $item);
}
return $result;
}
你可以这样称呼它:
timeSteps("00:30:00", "08:00:00", "10:00:00")
推荐阅读
- c++ - g++ 不能覆盖退出函数
- python - 如何使用 BeautifulSoup 在网站上获取实时股票价格?
- javascript - 如何在没有会议的情况下将事件添加到谷歌日历 API
- django - 用户注册不会保存
- android - 单击空组时,可展开的列表视图会折叠其他组
- express - node express multer fast-csv pug 文件上传
- regex - 将每个包含子字符串的单词加倍(让我们说“完成”),而不是子字符串本身
- d3.js - 更新 y 轴
- chart.js - Chart.js - 同步图表
- java - 我的循环正在用数字七、六次填充我的数组,为什么?