How to subtract time from current time in Laravel?

2.9k Views Asked by At
$clock_in = Carbon::createFromFormat('g:i A', Input::get('clock_in'))->timezone('UTC');
$clock_out = Carbon::createFromFormat('g:i A', Input::get('clock_out'))->timezone('UTC');

$attendance->clock_in = $clock_in->format('H:i:s');
$attendance->clock_out = $clock_out->format('H:i:s');

In this code I have clockIn and clockOut which get current time. Now, I want to subtract 5 hour :30 min from both i.e. clockIn and clockout. So, How can I do this? Please help me.

Thank You

1

There are 1 best solutions below

1
On BEST ANSWER

5 hr 30 min is equals to 5*3600+30*60 seconds,

So you can use subSeconds look like this:

$sec = 5*3600+30*60;
$attendance->clock_in = $clock_in->subSeconds($sec)->format('H:i:s');
$attendance->clock_out = $clock_out->subSeconds($sec)->format('H:i:s');

Or you can use subMinutes:

$min = 5*60+30;
$attendance->clock_in = $clock_in->subMinutes($min)->format('H:i:s');
$attendance->clock_out = $clock_out->subMinutes($min)->format('H:i:s');