使用时间计算变量

时间:2019-01-08 12:39:29

标签: php html laravel

我正在尝试通过银行获取数据,我相信问题不仅仅在于数字,还在于拥有“:”

该功能是通过视图中的链接触发的,该链接包含从id到get和隐藏帖子的信息,该信息包含发出请求的用户的id。

在数据库中,我将时间存储为以下时间:小时:分钟:秒

public function aprovar(Request $request, $id)
{
  $iduser = $request->input('colaboradores');
  DB::table('solicitacoes_banco')->where('idsolicitacao', $id)->update(['status_solicitacao' => '1']);

  $usuario = DB::select('select * from users where id = :id', ['id' => $iduser]);
  $solicitacoes = DB::select('select * from solicitacoes_banco where idsolicitacao = :id', ['id' => $id]);
  foreach($solicitacoes as $solicitacao) {}
  foreach($usuario as $usuario) {}

  $tiposolicitacao = $solicitacao->tiposolicitacao;
  $horasolicitacao = $solicitacao->horasolicitacao;

  if ($tiposolicitacao == "saida") {

      $horariocorreto = "17:30";
      if ($horasolicitacao < $horariocorreto) {
          $horaretirar = $horariocorreto - $horasolicitacao;

          $banco_usuario = $usuario->quant_banco;

          $desconto = $banco_usuario - $horaretirar;

          DB::table('users')->where('id', $iduser)->update(['quant_banco' => $desconto]);
      }

  }
  elseif($tiposolicitacao == 'entrada') {

      $horariocorreto = "08:30";

  }
  elseif($tiposolicitacao == 'folga') {

  }

  return redirect('rh/solicitacao');
}

1 个答案:

答案 0 :(得分:0)

如果您需要在大多数时间显示时间格式,请以时间格式存储变量,但是如果必须进行计算,则可能需要自午夜起数秒。

如果您坚持使用Datetime格式或什至是字符串,则可以添加一个mutator函数,该函数将在提取条目时对其进行转换。 在您的“ solicitacoes_banco”模型中添加此函数(“ usuario”模型中的同一函数也称为getQuantBancoAttribute):

public function getHorasolicitacaoAttribute($time)
{
    return \Carbon\Carbon::createFromFormat('H:i:s', $time);
}

然后您将拥有一个modify and compare easily的Carbon对象。

例如,您可以编写:

$horaretirar = $horariocorreto->diffInMinutes($horasolicitacao);

您将获得它们之间的分钟数。 Carbon库中还有许多其他有用的功能。