我正在尝试建立一种能够在时间范围内前进和后退的方法。
我正在为作品的生产车间创建一个简单的显示器。每次用户扫描条形码时,我们的ERP系统都会生成一个序列号。为了跟踪一天中的进度,他们想要一个显示屏幕,该屏幕将显示当天处理了多少个序列号(因此,有多少个小部件)。显示屏还将显示上一个班次的小部件。因此,在任何给定时间查看显示,您都会看到当前班次的进度,然后是前一个班次的总计。
我们整个星期进行3次正常轮班。第一班6am至2pm,第二班2pm至10pm,第三班10pm至6am。然后,在每个周末的两天,我们都有一个从上午6点至下午6点的周末班次。
我现在有一条面条面条,上面有if / else语句,可以使它真正起作用,但是我真的很想清理它并使其更易于长期维护。
所以我们说这是星期一第一班。我想获取星期一第一班的总数,但我也想向后退一班,回到周末班,并显示这些总数。周末的轮班确实是一个循环,这是因为现在我必须注意星期几。三班制也有点让人不安,因为它跨越了多个日期。有没有一种干净的方法来进行设置?那里的图书馆可以让我轻松定义这些东西吗?
希望这很有道理。很高兴澄清我所缺少的任何东西。预先感谢您的指导!
答案 0 :(得分:0)
也许shifts
资源会有用。
使用shifts
创建一个id, start_date, end_date, shift_type,...
表
扫描条形码时:
shift_id
shift_id
好处:
非常简单快速的查询即可获取所需的结果
如果轮班更改(开始时间,结束时间...)仍然有效(唯一需要的更改是在创建轮班行的方法上)
比较班次结果将非常容易
答案 1 :(得分:0)
您是否尝试过使用CarbonPeriod?请注意,Carbon已包含在Laravel中,因此无需通过Composer进行添加。