Sling Academy
Home/PHP/How to format date and time in PHP

How to format date and time in PHP

Last updated: January 09, 2024

Overview

Working with dates and times is a common task in many PHP applications. Properly formatting these values helps ensure clarity and consistency across different interfaces.

Before we start formatting dates and times, make sure that PHP is installed on your system and that you have access to a text editor to write your PHP scripts. To output the results, you can use a local server or command-line interface.

Basic Date and Time Formatting

PHP provides the date() function which can be used to format date and time. Here’s a simple example to display the current date and time:

<?php
    echo date('Y-m-d H:i:s');
?>

This will output the current date and time in the format of Year-Month-Day Hours:Minutes:Seconds.

Custom Date and Time Formatting

You can customize the format by using the different format characters provided by PHP:

<?php
    echo date('F j, Y, g:i a'); // Outputs: March 10, 2023, 5:30 pm
?>

Feel free to mix and match the format characters to get the desired output.

Timezone Handling

To ensure accurate date and time representation, setting the default timezone is crucial. Use date_default_timezone_set() to set your desired timezone:

<?php
    date_default_timezone_set('America/New_York');
    echo date('Y-m-d H:i:s');
?>

Now the date and time will be displayed according to the ‘America/New_York’ timezone.

DateTime Class

For more advanced date and time manipulation, PHP’s DateTime class is quite powerful. Here’s how you instantiate a DateTime object and format the date:

<?php
    $date = new DateTime();
    echo $date->format('Y-m-d');
?>

You can specify a date string when instantiating to work with a specific date and time.

Internationalization

If you need to display dates in different locales, use the IntlDateFormatter class:

<?php
    $formatter = new IntlDateFormatter('fr_FR', IntlDateFormatter::FULL, IntlDateFormatter::FULL);
    echo $formatter->format(new DateTime());
?>

This will display the date and time in a format appropriate for the French locale.

Manipulating Dates and Times

Use the DateTime::modify() method for date arithmetic. This lets you modify the DateTime object by adding or subtracting time:

<?php
    $date = new DateTime('2023-03-10');
    $date->modify('+1 day');
    echo $date->format('Y-m-d');
?>

This will display ‘2023-03-11’, indicating a date one day after the original.

Comparison and Difference

To compare two dates, you can use the comparison operators, but for a more comprehensive difference, use DateTime::diff():

<?php
    $date1 = new DateTime('2023-03-10');
    $date2 = new DateTime('2024-03-10');
    $interval = $date1->diff($date2);
    echo $interval->format('%R%a days');
?>

This will show the difference in days between the two dates.

Handling UNIX Timestamps

The DateTime class can also work with UNIX timestamps directly:

<?php
    $date = new DateTime('@1633039200');
    echo $date->format('Y-m-d H:i:s');
?>

Make sure to prefix the timestamp with an at symbol ‘@’ when using this approach.

Working with immutables

PHP 5.5 introduced the DateTimeImmutable class which behaves like DateTime but does not change the original object upon modification:

<?php
    $date = new DateTimeImmutable('2023-03-10');
    $newDate = $date->add(new DateInterval('P10D'));
    echo $newDate->format('Y-m-d');
?>

The original $date object remains unaltered.

Conclusion

PHP’s date and time functionalities are versatile and cater to most requirements, from basic to advanced levels. Understanding the various functions and classes available for date and time formatting and manipulation is essential for effectively managing these types of data in your applications.

Next Article: How to get the current timestamp in PHP

Previous Article: PHP: How to ping a server/website and get the response time

Series: Basic PHP Tutorials

PHP

You May Also Like

  • Pandas DataFrame.value_counts() method: Explained with examples
  • Constructor Property Promotion in PHP: Tutorial & Examples
  • Understanding mixed types in PHP (5 examples)
  • Union Types in PHP: A practical guide (5 examples)
  • PHP: How to implement type checking in a function (PHP 8+)
  • Symfony + Doctrine: Implementing cursor-based pagination
  • Laravel + Eloquent: How to Group Data by Multiple Columns
  • PHP: How to convert CSV data to HTML tables
  • Using ‘never’ return type in PHP (PHP 8.1+)
  • Nullable (Optional) Types in PHP: A practical guide (5 examples)
  • Explore Attributes (Annotations) in Modern PHP (5 examples)
  • An introduction to WeakMap in PHP (6 examples)
  • Type Declarations for Class Properties in PHP (5 examples)
  • Static Return Type in PHP: Explained with examples
  • PHP: Using DocBlock comments to annotate variables
  • PHP: How to ping a server/website and get the response time
  • PHP: 3 Ways to Get City/Country from IP Address
  • PHP: How to find the mode(s) of an array (4 examples)
  • PHP: Calculate standard deviation & variance of an array