Управление выводом по времени публикации в PHP LARAVEL

#php #laravel #forms #time #http-post

#php #laravel #формы #время #http-post

Вопрос:

Работая над интеллектуальным тайм-менеджером, информацией, отправляемой через форму, я хотел бы преобразовать вывод времени формы, записанный с :

 public function getFormOutput(Request $request) 
{
    $request->except('_token');
    $startTimeInput = $request->input('starttime');
    $endTimeInput = $request->input('endtime');
    $breakTimeInput = $request->input('breaktime');
}
  

Здесь нет проблем, значения формируются как «xx: xx»


Сейчас я пытаюсь вычислить разницу во времени между временем начала и окончания.

Использование strtotime() как это не работает :

 $startTime = strtotime($startTimeInput);
$endTime = strtotime($endTimeInput);
  

Они оба приняли значение :

 1552550400
  

Который, по-видимому, соответствует времени 1 января 1970 года в миллисекундах.


Вот мой timeManager.blade.php просмотр :

 {!! Form::open(['url'=>'agenda']) !!}
      {!! Form::label('starttime', 'Heure de début: ') !!}
      {!! Form::input('time', 'starttime') !!}
      <tr>
      {!! Form::label('endtime', 'Heure de fin: ') !!}
      {!! Form::input('time', 'endtime') !!}
      <tr>
      {!! Form::label('breaktime', 'Temps de pause: ') !!}
      {!! Form::input('time', 'breaktime') !!}
      <tr>
      {!! Form::submit('Envoyer' ) !!}
{!! Form::close() !!}
  

Мой вопрос: как вычислить разницу между временем начала и временем окончания?

Комментарии:

1. в чем ваш вопрос?? Пожалуйста, укажите ожидаемый результат, который вы хотите

2. Разница между двумя временами в минутах, секундах или часах ??

Ответ №1:

Попробуйте этот код для вычисления разницы во времени:

1-й способ:

 // calculate the start timestamp
$startdatetime = strtotime($startTimeInput);
// calculate the end timestamp
$enddatetime = strtotime($endTimeInput);
// calulate the difference in seconds
$difference = $enddatetime - $startdatetime;
// hours is the whole number of the division between seconds and SECONDS_PER_HOUR
$hoursDiff = $difference / 3600;
// and the minutes is the remainder
$minutesDiffRemainder = $difference % 3600;
// output the result
echo $hoursDiff . "hours " . $minutesDiffRemainder . "mins";
  

2-й способ:

 $datetime1 = new DateTime($startTimeInput);
$datetime2 = new DateTime($endTimeInput);
$interval = $datetime1->diff($datetime2);
echo $interval->format('%Y years, %M months, %D days, %I minutes, %S seconds');
  

Я надеюсь, что это было бы полезно.