首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在拉拉中比较不同的日期和时间

如何在拉拉中比较不同的日期和时间
EN

Stack Overflow用户
提问于 2015-03-11 06:05:30
回答 3查看 10K关注 0票数 3

我从客户那得到的日期和时间用的是拉拉。如何将给定的日期和时间与数据库进行比较,并将结果返回给客户?

例如,如果我从客户那里得到日期和时间,并且我想向他显示与他的日期和时间不冲突的行。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-03-11 07:45:17

实际上,您可以在DB查询中完成所有这些操作:

代码语言:javascript
复制
$date = '2015-03-11 06:29:56';
$alreadyBooked = DB::table('bookings')
                   ->whereRaw('ABS(TIMESTAMPDIFF(MINUTE, datetime, ?)) <= 120', [$date])
                   ->exists();

if($alreadyBooked){
    // show error
}

解释

?$date的占位符。这些被称为绑定,主要用于获取干净的查询和防止SQL注入。

TIMESTAMPDIFF(MINUTE, ...将在分钟内返回输入日期、时间和存储在数据库字段中的时间的差异。如果该值较小或等于120 (2小时= 120分钟),则与条件匹配。

ABS将使值“无符号”。-60变成60

票数 6
EN

Stack Overflow用户

发布于 2015-03-11 06:26:11

在Laravel中,您可以使用碳来比较日期/时间。

示例

代码语言:javascript
复制
$start = new Carbon\Carbon('2014-01-05 12:00:00');
$end = new Carbon\Carbon('2014-01-01 12:00:00');
echo $end->diffInDays($start);

也可以直接比较db中的数据。

代码语言:javascript
复制
$customer =App\Customer::first();
$start = $customer->db_date_column;
$end = new Carbon\Carbon('2014-01-01 12:00:00');
echo $end->diffInDays($start);

更多信息http://carbon.nesbot.com/docs/#api-difference

更新如果您想以小时表示时间差,则可以使用此$end-diffInHours($start);

票数 1
EN

Stack Overflow用户

发布于 2015-03-11 06:19:59

您可以使用以下示例:

代码语言:javascript
复制
$datetime1 = new DateTime('2009-10-11');
$datetime2 = new DateTime('2009-10-13');
$interval = $datetime1->diff($datetime2);
echo $interval->format('%R%a days');

在Laravel中,不要忘记添加以下内容:

代码语言:javascript
复制
use DateTime;

另一个选择是您可以使用SQL,查看我的示例:

代码语言:javascript
复制
      return DB::table('corporation')->join('corporation_subscription','corporation.id','=','corporation_subscription.corp_id')
        ->where('corporation.id','=',$id)
        ->where('corporation_subscription.period','>=',DB::raw('DATEDIFF(NOW(),corporation_subscription.created_at)'))
        ->where('corporation_subscription.status','!=', 'cancel' )
        ->get();

这对你也有帮助:DB::raw('DATEDIFF(NOW(),corporation_subscription.created_at)'))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28979693

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档