php - laravel 5.6 开始时间结束时间持续时间
问题描述
我正在尝试在 Laravel 5.6 中创建一个函数
我有一个$start_time
,$end_time
和$duration
变量。
我想获取从开始时间到结束时间的时间$duration
段,例如:
$duration = 30 min
$start_time = 9:00 am
$end_time = 9:00 pm
结果:
-9:00 - 9:30
-9:30 - 10:00
-10:00 - 10:30
.... 等
另外,我不想在我的数据库中显示时间与约会重叠的时段。
解决方案
如果你使用 Laravel,那么有一个时间和日期依赖项叫做 Carbon,我相信你听说过。
您所要做的就是像这样导入它:
use Carbon\Carbon;
然后我们可以看到通过这个依赖我们会做什么,我们只是创建一个时间然后根据持续时间添加分钟,这就是你想要的。
$start_time = Carbon::createFromTime(9, 0, 0); // hours, minutes, seconds
$end_time = Carbon::createFromTime(21, 0, 0);
$time = $start_time;
$time_slots = array();
while($time < $end_time){
$time = $time->addMinutes(30);
$time_slots[] = $time;
}
这个数组将有你想要的时间段,你可以随意操作它们。
您还可以查看以下链接:
文档:https ://github.com/briannesbitt/Carbon
Carbon 的字符串格式:http: //carbon.nesbot.com/docs/#api-formatting
推荐阅读
- automake - 强制 libtool 与 libdl.so 链接
- java - 我无法弄清楚为什么 JPA 无法生成匹配表
- c++ - 如何将 Lua 添加到 C++ 项目中
- c# - 在 MVC 程序中调用 Web API
- react-native - 关于 Auth Flow 和 React Navigation 的问题(React Native)
- node.js - 如何判断项目/应用程序需要什么版本的 Node
- python-2.7 - 从python中的字符串中删除子字符串
- c# - one2many 关系,得到父母和孩子
- arrays - 将递减变量传递给“sed”命令时出现错误替换错误
- c# - 下载大文件时 SendAsync 和 CopyToAsync 不起作用