Рассчитайте разницу во времени двух строк в laravel - PullRequest
0 голосов
/ 27 января 2020

Я хочу рассчитать разное время между двумя строками и рассчитать ранг. это мой код:

 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?

Ответы [ 3 ]

1 голос
/ 27 января 2020

Используйте метод Карбона, diffInSeconds, diffInDays или diffInMonths et c:

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;
}
0 голосов
/ 27 января 2020
$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);
0 голосов
/ 27 января 2020

использование UNIX_TIMESTAMP

$q = DB::table('users')->select(DB::raw("SUM(UNIX_TIMESTAMP(stime) - UNIX_TIMESTAMP(rtime)) as TIMESTAMPDIFF"))->get();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...