Laravel 3 - 查询同一天的开始和结束日期的最佳方法是啥

Posted

技术标签:

【中文标题】Laravel 3 - 查询同一天的开始和结束日期的最佳方法是啥【英文标题】: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 - 我已经更新了我的问题。对不起,不够清楚。我希望它现在更有意义。 【参考方案1】:

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

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

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

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

希望对你有帮助。!!

【讨论】:

以上是关于Laravel 3 - 查询同一天的开始和结束日期的最佳方法是啥的主要内容,如果未能解决你的问题,请参考以下文章

结束日期不能小于开始日期啥意思

oracle 如何查询两个时间段里的每一天数据之和。(只有开始日期和结束日期,没有每一天日期)

java中想获取前一天的开始和结束的两个毫秒数,请问分别怎样获取???????

做个日期查询,判断开始日期与终止日期范围必须在一个月之内,用java代码

Laravel 4:在验证之前和之后验证开始和结束日期

开始日期后的 Laravel 验证结束日期不起作用