Code has been added to clipboard!

PHP Date Format

Reading time 4 min
Published Aug 14, 2017
Updated Oct 10, 2019

PHP Date Format: Main Tips

  • This date() function is used in formatting date and time in your code.
  • There are special formatting characters: PHP year, week, day, etc.
  • You can use it to make PHP get timestamp automatically and update the copyright dates on your website.

Syntax Rules Explained

The syntax rules for entering a date are rather simple:

date(format, timestamp)

The timestamp part describes an integer Unix timestamp. Entering it is optional - if you don't do it, it will result in making PHP get timestamp automatically and display the current local time (time()).

Now, for the format part, it's a different story. It is necessary to enter because that's how you specify how your PHP date formats will look.

Common Formatting Characters

In PHP years, months and days are often referred to by using special symbols. There are four characters most commonly used with PHP date function:

  • d (01-31) represents the day number.
  • m (01-12) represents a month number.
  • Y (four digits) represents a year number.
  • l (lowercase 'L') indicates the day of the week.

More symbols (/, ., -) can be added for additional PHP date formatting.

In the code example below, you can see four different ways to create PHP date formats:

Example
<?php
  echo "Today is " . date("Y/m/d") . "<br>";
  echo "Today is " . date("Y.m.d") . "<br>";
  echo "Today is " . date("Y-m-d") . "<br>";
  echo "Today is " . date("l");
?>

Now, the four characters listed above might be the most commonly used with datetime PHP function, but your choices are not limited to them. Let's have a look at the whole list of characters you can use for PHP date formats and what they indicate:

Character Description
d The day of the month (01-31)
D Shows a day in three letter text
j Day of the month (without zeros in front; 1-31)
l (lowercase 'L') Displays the full name of a day
N Week day displayed in a numeric format (1 for Monday, 7 for Sunday)
S The suffix for a day of the month. (st, rd, th or nd) Can be combined with j to create 1st; 13th, etc.
w Week day displayed in a numeric format (0 for Sunday, 6 for Saturday)
z Number for a day of the year (0-365)
W The number for the current week of year (weeks start on Monday)
F A full name of a month (January, December, etc.)
m The number of a current month (01-12)
M The name of a month written in three letters
A numeric representation of a month, without leading zeros (1-12)
t Displays a number of days in the current month
L Displays 1 if it is a leap year, and 0 if it is not.
o The ISO-8601 year number
Y The current year displayed in four digits
y The current year displayed in two digits (the last two)
a Displays the time prefix (am/pm)
A Displays the time prefix in uppercase (AM/PM)
B Internet swatch time (000-999)
g Hours displayed in 12-hour format (1-12)
G Hours displayed in 24-hour format (0-23)
h Hours displayed in 12-hour format with leading zero (01-12)
H Hours displayed in 24-hour format. Uses leading zeros (00-23)
i Minutes displayed with leading zeros (00-59)
s Seconds displayed with leading zeros (00-59)
u Displays microseconds
e Displays the timezone (UTC, GMT, etc.)
I (capital i) Displays 1 if the date is in daylight savings time and 0 if it is not
O Displays the difference from the Greenwich time (GMT) (e.g.: +0200)
P Displays the difference from the Greenwich time (GMT) in hours:minutes
T Timezone abbreviations (e.g.: MDT, EST)
Z The timezone offset in seconds. From -43200 to 50400 (to the west from UTC is negative)
c The date in ISO-8601 format (e.g.: 2017-09-12T19:54:40+00:00)
r The date in RFC 2822 format (e.g.: Fri, 13 Jan 2017 18:09:10 +0200)
U Displays how many seconds had passed since Unix Time (January 1st, 1970, 00:00:00 GMT)

List of Predefined Constants

There are also a few predefined constants for datetime PHP that developers use. Take a look at the table below:

Constant Description
DATE_ATOM Atom (e.g.: 2017-09-12T19:12:11+00:00)
DATE_COOKIE HTTP Cookies (e.g.: Monday, 11-Apr-11 19:58:51 UTC)
DATE_ISO8601 ISO-8601 (example: 2017-09-12T12:12:11+0000)
DATE_RFC822 RFC 822 (e.g.: Mon, 11 Apr 14 19:11:15 +0000)
DATE_RFC850 RFC 850 (e.g.: Tuesday, 11-Apr-10 11:12:51 UTC)
DATE_RFC1036 RFC 1036 (e.g.: Mon, 11 Apr 11 19:42:31 +0000)
DATE_RFC1123 RFC 1123 (e.g.: Mon, 10 Apr 2018 13:32:01 +0000)
DATE_RFC2822 RFC 2822 (e.g.: Fri, 10 Apr 2017 18:53:31 +0000)
DATE_RFC3339 Same as DATE_ATOM (since PHP 5.1.3)
DATE_RSS RSS (e.g.: Mon, 12 Aug 2017 13:22:21 +0000)
DATE_W3C World Wide Web Consortium (e.g.: 2017-09-12T13:32:11+00:00)
Tutorial
Introduction
Installation
Syntax
Variable
Superglobals
Data Types
String
Array
Multidimensional Array
Sort Array
Constant
Operators
Cookies
Sessions
DateTime
Error Handling
Exception Handling
File
Write and Create File
File Open, Read and Close
File Upload
Filtering
Redirecting
Advanced Filters
Forms
Form Required Field
Validate Email/URL
Form Validation
Form Action
Function
Prepared Statements
JSON
Calendar
ZIP File
FTP
HTTP Response
DateTime Functions
Error Functions
File Function
Filter
Math Functions
Mail Function
Miscellaneous Functions
Date Format
String Functions
Array Functions
Directory Functions
MySQL Database
MySQL Connection
MySQL Create Database
MySQL Create Table
MySQL Delete Data
MySQL Insert Data
MySQL Get Last Record ID
MySQL Insert Multiple Records
MySQL Select Data
MySQL Limit Data
MySQL Update Data
MySQLi Functions
AJAX and MySQL
AJAX Search
AJAX Poll
RSS Reader
Read XML File in PHP
XML Parser
SimpleXML Parser
SimpleXML: Node and Attribute
Expat XML Parser
DOMDocument
Libxml Functions
SimpleXML Functions
XML Parsing Functions
PHP isset
PHP echo and print
PHP if else and elseif
PHP switch case
PHP include File
PHP while Loop
PHP for and foreach
PHP mail()
PHP explode()
PHP substr()
PHP str_replace()
PHP array_push
PHP count()