laravel - 如何比较多个日期时间并在一个视图中显示它们?
问题描述
我使用碳来比较两个日期,最初我使用了两个静态变量,一个是$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),以便了解每项工作还剩多少时间才能完成交付时间。
解决方案
更改您的查询,它在下面这样的行,因为您直接传递$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']);
推荐阅读
- php - PHP比较不起作用
- java - Android CounDownTimer.cancel() 不工作
- angular - Angular 6 Karma 测试 API 问题
- html - 使用 High Charts & Bootstrap 3 的响应式折线图
- python - 将函数返回元组解包成键值对
- python - 对话流:403 IAM 权限“dialogflow.sessions.detectIntent”
- docker - Docker 权限被卷拒绝
- intellij-idea - Intellij Idea:如何在特定选项卡中打开文件?
- java - 下面的代码应该在 3 次重试后停止并将最终输出打印为 false,但它卡在第一个方法调用中
- java - 两个函数的区别