How to format a date in PHP

From PHP version 5.2 onwards, the DateTime class has been available to create timestamp objects, providing developers with a convenient way to handle dates and times.

The format method

We can use the format method in order to represent the date as a string in a flexible format. Try the example below where we format a date in a couple of different styles.

<?php
$myDate = new DateTime();
echo $myDate->format('jS M Y');
echo "\n";
echo $myDate->format('d/m/y');
?>

Let’s explain the code provided above.

  • Line 3: Set the $myDate variable to a new DateTime object.

  • Line 5: Print the $myDate variable using the formatting template jS M Y.

  • Line 8: Print the $myDate variable using the formatting template d/m/y.

The format method takes a string argument that specifies the desired date format. This format string utilizes letters to represent the different components of the date, including the day, week, month, and year. Additionally, symbols like colons (:), hyphens (-), and slashes (/) can be directly included in the output string to further customize the formatting.

Date format special characters

Character

Meaning

Example

j

Number representing the day

1, 31

d

Number representing the day of the month, with a leading zero if applicable

01, 31

jS

Combined to produce the English representation of the day of the month

1st, 2nd

m

Number representing the month, with a leading zero if applicable

01, 12

M

Short text representation of the month with 3 characters

Jan, Feb

y

2 digit representation of the year

99, 23

Y

At least, 4 digit representation of the year

1999, 2023

Let’s discuss the details of DateTime object from the above code snippet.

The DateTime object

PHP DateTime objects implement an interface called DateTimeInterface. The DateTimeInterface specifies methods, including format method, that the DateTime class should implement. The DateTime class in PHP comes with pre-defined constant strings that represent date formats including the popular formats such as ATOM and ISO8601.

We can format a DateTime object by calling the format method and passing a format constant as the argument. Try running the example below, where we create a new DateTime object and then format it using the ATOM and ISO8601 constants.

<?php
$myDate = new DateTime();
echo $myDate->format(DateTimeInterface::ATOM);
echo "\n";
echo $myDate->format(DateTimeInterface::ISO8601);
?>
  • Line 3: We set the $myDate variable to a new DateTime object.

  • Line 5: We print the $myDate variable using the ATOM format. The ATOM format formats the date in this format: Y-m-d\\TH:i:sP.

  • Line 8: We print the $myDate variable using the ISO8601 format. The ISO8601 formats the date in this format Y-m-d\\TH:i:sO.

Free Resources

Copyright ©2025 Educative, Inc. All rights reserved