【问题标题】:Laravel 3 - What's the best way to query start and end dates that are the same dayLaravel 3 - 查询同一天的开始和结束日期的最佳方法是什么
【发布时间】:2014-01-01 22:06:19
【问题描述】:

我有一个用 Laravel 3 编写的网络应用程序。在这个应用程序中,模型之一是“活动”。这些活动都有开始日期和结束日期字段。我想知道查询所有在同一天开始和结束的活动的最佳方法是什么?

-- 更新--

我使用的是 mySQL,字段类型都是 Timestamp...

我目前拥有的

...

$activitySchedule = ActivitySchedule::with(array('location'))->where(function($query) {         

    // Query activities that start and end today
    $yesterday = date('Y-m-d', strtotime('today')) . ' 00:00:00';
    $tomorrow = date('Y-m-d', strtotime('today')) . ' 23:59:59';
    $query->where('starts', '>', $yesterday);
    $query->where('ends', '<', $tomorrow);
});

...

我认为这可以正常工作,但我想知道是否有更精确的方法?

【问题讨论】:

  • 那么,所有开始日期等于结束日期的活动?
  • 你在使用 eloquent(模型是否扩展它?)?
  • 请编辑您的问题并添加更多信息.. 使用 eloquent?什么日期字段类型..你试过什么?哪个数据库?
  • @amirbar - 我已经更新了我的问题。对不起,不够清楚。我希望它现在更有意义。

标签: php date laravel


【解决方案1】:

您应该使用 Carbon 包,它可以让您像这样获得 startOftheDayendoftheday

$StartofDay = Carbon::now()->startOfDay();
$EndofDay = Carbon::now()->endOfDay();

完成此操作后,使用 where 条件查询您的模型,该条件涉及使用 StartofDayEndofDay 值以及 created_at 列进行检查的条件。

在这里找到碳包:https://github.com/briannesbitt/Carbon

希望对你有帮助。!!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多