在laravel中计算两行的时间差

Posted

技术标签:

【中文标题】在laravel中计算两行的时间差【英文标题】:Calculate the time difference of two rows in laravel 【发布时间】:2020-05-12 15:17:12 【问题描述】:

我想计算 2 行之间的时间差异并计算排名。 这是我的代码:

 public function testtima($sid,$rid)
        $calcs=users::where([['si',$sid]])->first();
        $calcr=users::where([['ri',$rid]])->first();
        $stime=$calcs['created_at'];
        $rtime=$calcr['created_at'];
        $show['stime']=$stime;
        $show['rtime']=$rtime;
        $show['now']=carbon::now();
        return $show;
    

我如何计算$rtime-$stime

【问题讨论】:

使用$stime->diffInDays($rtime);。或者可以使用diffInHours 方法。 ***.com/questions/39508963/… 【参考方案1】:
$row1= "2007-03-24";
$row2= "2009-06-26";

$diff = abs(strtotime($row2) - strtotime($row1));

$years = floor($diff / (365*60*60*24));
$months = floor(($diff - $years * 365*60*60*24) / (30*60*60*24));
$days = floor(($diff - $years * 365*60*60*24 - $months*30*60*60*24)/ (60*60*24));

printf("%d years, %d months, %d days\n", $years, $months, $days);

【讨论】:

【参考方案2】:

使用 Carbon 的方法,diffInSecondsdiffInDaysdiffInMonths 等:

public function testtima($sid,$rid)
    $stime = users::where('si',$sid)->first()->created_at;
    $rtime = users::where('ri',$rid)->first()->created_at;
    $diff = (new Carbon($stime))->diffInSeconds($rtime);
    //$diff = (new Carbon($stime))->diffInDays($rtime);   
    return $diff;

【讨论】:

以上是关于在laravel中计算两行的时间差的主要内容,如果未能解决你的问题,请参考以下文章

有人可以解释一下程序中以下两行的含义来实现管道吗?

标题中有两行的Android工具栏?

在 R 中,如何确定我的 (x,y) 数据框中哪两行的距离最小?

根据两行的条件合并行? [复制]

bash 一个用于计算 bash 中特定数字行的平均值的衬垫

Laravel Eloquent ORM:设置模型的数据类型