In PHP and Laravel, date and time can be managed using Carbon. Default PHP uses the Date object, which does not have as many flexibility as Carbon object. To start using Carbon on Laravel, add at top, along with other "use" statements.
use Carbon\Carbon
Here are examples of its usage. Declare current date and time
$currentDateTime = Carbon::now();
The current value can be printed with
print_r($currentDateTime);
Format to user specific output.
$now = Carbon::now()->format('d-m-Y'); // 1-1-2024
$now->toDateString(); // 2024-01-01
$now->toFormattedDateString(); // Jan 1, 2024
$now->toTimeString(); // 00:00:00
$now->toDateTimeString(); // 2024-01-01 00:00:00
$now->toDayDateTimeString(); // Mon, Jan 1, 2024 12:00 AM
$now->toCookieString(); // Monday, 01-Jan-2024 00:00:00 UTC
$now->toIso8601String(); // 2024-01-01T00:00:00+00:00
Other ways of creating a Carbon object
Carbon::parse('2023-03-10'); // Carbon instance for 2023-01-01 00:00:00
Carbon::parse('Monday of this week'); // Monday of this week
Carbon::parse('first day of January 2024'); // first day of January 2024
Carbon::parse('first day of this month'); // first day of this month
Carbon::parse('first day of next month'); // first day of next month
Carbon::parse('first day of last month'); // first day of last month
Carbon::parse('last day of last month'); // last day of last month
Retrieve values of a carbon in various formats;
$now->year;
$now->month;
$now->dayOfWeek;
$now->englishDayOfWeek;
$now->englishMonth;
$now->tzName;
$now->dst;
Subtract one hour
Carbon::now()->subHour();
Subtract more than 1 hour
Carbon::now()->subHours(2);
Add one hour
Carbon::now()->addHour();
Add more than 1 hour
Carbon::now()->addHours(2);
Add one day
Carbon::now()->addDay();
Add more than 1 day
Carbon::now()->addDays(2);
This can also be applied to subWeeks(), addWeeks().
Set to a specific date by altering day or month or year
$currentDateTime = $currentDateTime->setMonth(2);
$currentDateTime = $currentDateTime->setDay(18);
$currentDateTime = $currentDateTime->setYear(2025);
Example that applies a specific day and month.
$currentDateTime = $workDayStart->setDay($calcCreatedDate->format('d'))->setMonth($calcCreatedDate->format('m'))->setYear($calcCreatedDate->format('Y'));
Retrieve the difference between 2 Carbon dates $start and $now.
$start->diff($now); \\ returns DateInterval
$start->diffInMinutes($now); \\ returns difference in minutes
$start->diffInMinutes($now); \\ returns difference in
$start->diffForHumans($now);