PHP DateTime is a class which is used for dealing with date and time. Using this class, we can print different date formats, timestamps, DateTime in different time zones. This default class works perfectly. But at the same time, it is a little bit difficult for beginners.
So, if just in case someone needs a more easy approach to working with DateTime then Carbon is the right choice for them. In this tutorial, we study how to work with PHP DateTime using Carbon.
Basically, Carbon is a API extension for DateTime. This library is built on the top of PHP DateTime class.
Using this library one can perform all operations on DateTime which is allowed by this built-in PHP class.
Having said that, let’s first install the Carbon library.
Like we said all the time, Composer is the best way to install the libraries.
For installing Carbon library, open the terminal in your project root directory and run the command below:
composer require nesbot/carbon
Wait for a while until composer installing a library for you. Once it is done, you can see the package ‘nesbot’ under vendor directory.
Working With PHP DateTime
We have successfully installed the Carbon library. Now to work with this library, we need to include their environment in our application. We can do this using the code below:
<?php require_once "vendor/autoload.php"; use Carbon\Carbon; ?>
Next, we can now play with PHP DateTime, PHP date formats, PHP timestamps and much more.
PHP applications run on a server. And each server has default timezone set. We can get the default timezone name as follows:
<?php require_once "vendor/autoload.php"; use Carbon\Carbon; echo "Default timezone name: ". Carbon::now()->timezoneName; ?>
In our case, we got timezone ‘Europe/Berlin’. You may get different timezone name depends on your server settings.
If you want to change default timezone for your application then use:
$now = Carbon::now(); $now->timezone = new DateTimeZone('Europe/London');
You will get the list of all available timezone names here.
We can print the different PHP date formats using the Carbon. For instance, below format gives the output of current date and time as Friday 22nd of December 2017 05:38:25 AM. This is the exact time at the writing of this article.
echo "Formatted DateString: ". $now->format('l jS \\of F Y h:i:s A');
We can print current time in any timezone. To print the current time in London, we write the code:
$nowInLondonTz = Carbon::now('Europe/London'); echo "London Datetime now: ". $nowInLondonTz;
One can print the current timestamps like below:
$now = Carbon::now(); echo "Timestamp: ". $now->timestamp;
While working on applications, sometimes we need to get the difference between two time zones. Using Carbon, we can find out the difference in hours or minutes very easily.
Let’s say we have to find out difference between timezones Asia/Kolkata and Europe/Berlin.
$now = Carbon::now('Asia/Kolkata'); $emitted = Carbon::parse($now, 'Europe/Berlin'); echo $now->diffInMinutes($emitted);
Above code will get the output as 270. It’s a difference in minutes between these 2 time zones.
These are some examples using the Carbon. You can explore more about this from their official documentation.
If you liked this article, then please subscribe to our Youtube Channel for video tutorials.