【问题标题】:Laravel Weekly Schedule / TimetableLaravel 每周时间表/时间表
【发布时间】:2015-03-02 05:48:02
【问题描述】:

对于我的 Laravel 应用程序,我需要一个每周计划,每周都是一样的。所以周一到周日。

这是一个像这样的时间表,例如:

  • MO: 10:00 - 11:00 > 清洁
  • MO: 12:00 - 12:30 > 午餐
  • MO:17:00 - 17:45 > 其他时间

我正在考虑以下模型:

#schedule
day_of_the_week: integer
time_start_hours: integer
time_start_minutes: integer 
time_stop_hours: integer
time_stop_minutes: integer 
task: text

但我认为我的想法很难。应该有一个更简单的方法然后这个。正确的? 当它基于日期时,它应该更容易。但是每周的时间表都是一样的。

也是因为我不想做以下事情:

  • 列出每天的项目,按时间排序
  • 突出显示当前任务(基于当前日期/时间)
  • 单独突出显示新任务(如小部件,计划中的下一个任务)

我可以在 L4 中使用哪些优势?使用 Eloquent、Carbon 等。

我在架构中发现了一些内容,例如:$table->time('from');,而不是在模型中添加小时和分钟字段。

【问题讨论】:

  • 我不确定你在问什么。您是否尝试在这些时间执行某种作业,例如 cron 作业?
  • 与 cronjobs 无关。我正在寻找一种利用 $table->time() 而不是 $table->datetime() 的简单方法。结合一周中的几天。当您使用 time() 时,我特别纠结于如何及时检查下一课或当前课。当您将日期时间与 Carbon 结合使用时,这很容易。
  • 所以您需要能够从数据库中获取当天的所有任务,然后能够判断一个任务是当前任务还是下一个任务?
  • 用例:您在 17:35 登录。当前任务是:吃东西(展示这个)。下一个任务是 19:00(显示这个)。之后的任务是明天 10:00(显示这个)。

标签: laravel laravel-4 eloquent


【解决方案1】:

因此,您需要获取当前任务的列表以及以正确方式排序的任务之后的 2 个任务。

Model::where('task_time', '>', $currentTime)->take(3)->orderBy('task_time', 'asc')->get();

【讨论】:

  • 不,不是这样。以前试过。但是,当您查看周日页面时,您仍然无法确定任务是否适用于周一。
  • 那么你为什么不做两个查询。一份用于当前任务,一份用于明天的任务。然后你会将它们放在两个不同的变量中,这样你就会知道哪个是哪个。
猜你喜欢
  • 2011-09-10
  • 1970-01-01
  • 1970-01-01
  • 2022-10-30
  • 1970-01-01
  • 2015-05-14
  • 2012-05-18
  • 1970-01-01
  • 2020-08-09
相关资源
最近更新 更多