【问题标题】:How to compare multiple datetimes and display them in one view?如何比较多个日期时间并在一个视图中显示它们?
【发布时间】:2020-06-05 01:25:10
【问题描述】:

我使用 carbon 来比较两个日期,最初我使用了两个静态变量,一个是 $Hnow = now(),另一个是 $Hlim = Carbon :: Create($year, $month, $day, $hourM, $minute, $second); 比较如下:

$intervalH = $Hnow-> diffInHours ($Hlim);

它非常适合我,但现在我必须将它调整到一个数据库中,我有几个时间戳,而不是静态 $ Hlim,我有很多日期,这是展示作品的限制.如何将表格中的每个日期与当前日期进行比较并有序显示这些数据?我知道时间戳无法与碳进行比较,因此我先对其进行了转换,但它没有显示任何捕获的日期。

控制器:

<?php

namespace App\Http\Controllers;

use App\pamatrixinf;
use App\Periodicity;
use Illuminate\Http\Request;
use App\Alertnotification;
use Carbon\Carbon;
use DateTime;

use App\pawork;

class fen extends Controller
{
    public function __construct()
    {
        $this->middleware('auth');

    }

    public function index()
    {
        $hour= 14;
        $minute= 0;
        $second=0;
        $year= date("Y");
        $month= date("m");
        $day=date("d");
        $hourM=date("H");
        $dayy= now();

        $dateli=pamatrixinf::select('pamatrixinf.dateen')
        ->where('pamatrixinf.read_at','=',0,'AND')
        ->where('codpaarea', '=', auth()->user()->codarea)
        ->get();
        $datelim= strtotime($dateli);
        $datedif=Carbon::Create($year,$month,$day,$hourM,$minute,$second);
        $dateend= $datedif->addHour();
        $intervalH= $dayy->diffInHours($datelim);
        $intervalM= $dayy->diffInMinutes($dateend);



        return view('fen.index', [

        'Works' => Periodicity::select('paperiodicity.descriptionp','pamatrixinf.description', 'pamatrixinf.codpar')
                ->join('pamatrixinf', 'pamatrixinf.cod_paperiodicity', '=', 'paperiodicity.cod')
                ->where('pamatrizinfoperio.read_at', '=', 0, 'AND')
                ->where('pamatrizinfoperio.codpaarea', '=',auth()->user()->codarea)
                ->get(),
        'Periodores' => $intervalH,
        'Periodoresm' => $intervalM,
        'Hactual' => $dayy,
        'Hlimit' => $datelim


        ]);
    }
}

我的看法:

@extends('layouts.app')

@section('content')
<div class="container">
    <div class="row justify-content-center">
        <div class="col-md-8">
            <div class="card">
                <div class="card-header"><h4>Fenecer</h4></div>

                <div class="card-body">
                    @if (session('status'))
                        <div class="alert alert-success" role="alert">
                            {{ session('status') }}
                        </div>
                    @endif

                    Welcome {{Auth::user()->name}}, the work for today is:
                    @foreach($Works as $work)

            <li class="list-group-item">
            La informacion por mandar llamada
           <p style="color:red;"> <b>{{$trabajo->descripcion}}</b> </p>
           @if($Hactual<$Hlimit)
            is about to end in
            {{$Periodores}} Hours and
            {{$Periodoresm}} Minutes, the limit is {{$Hlimit}} and the date actual is {{$Hactual}}.
           @elseif($Hactual>$Hlimit)
           <p style="color:red;"> <b> It has passed away please we inform the manager. The work died on {{$Hlimit}} and the actual date is {{$Hactual}} </b> </p>
           @endif
   </li>
@endforeach


                </div>
            </div>
        </div>
    </div>
</div>

如您所见,我要做的是在视图中显示小时差 ($datelim),以便了解每个作业还剩多少时间才能完成其交付时间。

【问题讨论】:

    标签: laravel php-carbon


    【解决方案1】:

    更改您的查询,它在下面这样的行,因为您直接传递包含查询结果的$dateli,而strtotime 函数需要一个字符串。 希望对你有帮助

        $dateli=pamatrixinf::select('pamatrixinf.dateen')
                ->where('pamatrixinf.read_at','=',0,'AND')
                ->where('codpaarea', '=', auth()->user()->codarea)
                ->get()
                ->toArray();
        $datelim= strtotime($dateli[0]['dateen']);
    

    【讨论】:

    • 返回数据我得到了日期,但是在输入“$datelim=strtotime($dateli['dateen']);”行的时候我收到错误“未定义的索引:日期”,它可能是什么?
    猜你喜欢
    • 2021-12-20
    • 2017-04-02
    • 1970-01-01
    • 2021-07-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-09-26
    相关资源
    最近更新 更多