【问题标题】:How do I create a list of time ranges?如何创建时间范围列表?
【发布时间】:2019-07-08 19:42:52
【问题描述】:

我正在尝试建立一种能够在一组时间范围内前后移动的方法。

我正在为我工​​作的生产车间创建一个简单的展示。每次用户扫描条形码时,我们的 ERP 系统中都会生成一个序列号。为了跟踪全天的进度,他们需要一个显示当天处理了多少连续剧(因此,有多少小部件)。显示屏还将显示上一个班次的小部件。因此,在任何给定时间,您都会看到显示屏,您会看到当前班次的进度,然后是上一个班次的总数。

我们每周进行 3 次正常轮班。第一班早上 6 点到下午 2 点,第二班晚上 2 点到晚上 10 点,第三班晚上 10 点到早上 6 点。然后在这两个周末,我们都有一个从早上 6 点到下午 6 点的周末班次。

我目前有一大堆 if/else 语句,这使得它真正起作用,但我真的想清理它并使其更容易长期维护。

假设现在是星期一第一班。我想获取星期一第 1 班的总数,但我也想后退 1 班到周末班并获取这些总数以显示。周末的轮班确实是这个循环的原因,因为现在我必须知道一周中的哪一天。第三班也有点谨慎,因为它跨越了多个日期。有没有一种干净的方法来设置它?有一个库可以让我轻松定义这些东西吗?

希望这是有道理的。很高兴澄清我遗漏的任何事情。提前感谢您的任何指导!

【问题讨论】:

    标签: php laravel time range schedule


    【解决方案1】:

    也许shifts 资源会很有用。

    1. 使用id, start_date, end_date, shift_type,... 创建shifts 表

    2. 扫描条码时:

      • 如果当前班次已创建,请将shift_id 分配给条形码行
      • 如果不是,则创建班次行,并将shift_id 分配给条形码行

    好处:

    • 非常简单快速的查询以获得您需要的结果

    • 如果班次发生变化(开始时间、结束时间...),它仍然可以工作(唯一需要更改的是创建班次行的方法)

    • 比较班次结果非常容易

    【讨论】:

      【解决方案2】:

      您是否尝试过使用CarbonPeriod?请注意,Carbon 已包含在 Laravel 中,因此无需使用 Composer 进行添加。

      【讨论】:

        猜你喜欢
        • 2013-10-07
        • 2010-11-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2011-08-31
        相关资源
        最近更新 更多