首页 > 解决方案 > 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
.... 等

另外,我不想在我的数据库中显示时间与约会重叠的时段。

标签: phplaravel

解决方案


如果你使用 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


推荐阅读