date(
string $format,
?int $timestamp = null
): stringThe format of the outputted date string.
There are also several predefined date constants that may be used instead, so for example DATE_RSS contains the format string 'D, d M Y H:i:s'.
| Day | Description | Example |
|---|
| d | Day of the month with leading zeros, 2 digits | 01 - 31 |
| D | Short textual representation of the day of the week, three letters | Mon - Sun |
| j | Day of the month without leading zeros | 1 - 31 |
| l (lowercase L) | Full textual representation of the day of the week | Sunday - Saturday |
| N | ISO-8601 numeric representation of the day of the week | 1 - 7 (Monday - Sunday) |
| S | English ordinal suffix for the day of the month, 2 characters | st, nd, rd, th |
| w | Numeric representation of the day of the week | 0 - 6 (Sunday - Saturday) |
| z | Day of the year | 0 - 365 |
| Week | Description | Example |
|---|
| W | ISO-8601 week of the year, weeks start on Monday | 1 - 52 |
| Month | Description | Example |
|---|
| F | Full textual representation of a month | January - December |
| m | Numeric representation of a month with leading zeros, 2 digits | 01 - 12 |
| M | Short textual representation of a month, three letters | Jan - Dec |
| n | Numeric representation of a month without leading zeros | 1 - 12 |
| t | Number of days in the given month | 28 - 31 |
| Year | Description | Example |
|---|
| L | Whether it's a leap year | 1 (leap year), 0 (otherwise) |
| o | ISO-8601 week-numbering year. The same value as Y, except that if the ISO week number (W) belongs to the previous or next year, that year is used instead. | Example: 1999 |
| y | 2 digit representation of a year | 00 - 99 |
| Y | 4 digit representation of a year | Example: 1999 |
| Time | Description | Example |
|---|
| a | Lowercase Ante meridiem and Post meridiem | am, pm |
| A | Uppercase Ante meridiem and Post meridiem | AM, PM |
| B | Swatch Internet time | 000 - 999 |
| g | 12-hour format of an hour without leading zeros | 1 - 12 |
| G | 24-hour format of an hour without leading zeros | 0 - 23 |
| h | 12-hour format of an hour with leading zeros | 01 - 12 |
| H | 24-hour format of an hour with leading zeros | 00 - 23 |
| i | Minutes with leading zeros | 00 - 59 |
| s | Seconds with leading zeros | 00 - 59 |
| u | Microseconds. Note: date() will always generate 000000 since it takes an integer parameter, whereas DateTime::format() does support microseconds if DateTime was created with microseconds. | Example: 654321 |
| v | Milliseconds. Same note as u. | Example: 654 |
| Timezone | Description | Example |
|---|
| e | Timezone identifier | Examples: UTC, GMT, Atlantic/Azores |
| I (uppercase i) | Whether or not the date is in daylight saving time | 1 (daylight saving time), 0 (otherwise) |
| O | Difference to Greenwich time (GMT) without colon between hours and minutes | Example: +0200 |
| P | Difference to Greenwich time (GMT) with colon between hours and minutes | Example: +02:00 |
| T | Timezone abbreviation | Examples: EST, MDT ... |
| Z | Timezone offset in seconds. The offset for timezones west of UTC is always negative, and for those east of UTC is always positive. | -43200 - 50400 |
| Full | Description | Example |
|---|
| c | ISO 8601 date | Example: 2001-02-03T04:05:06+00:00 |
| r | RFC 2822 formatted date | Example: Sat, 03 Feb 2001 04:05:06 +0000 |
| U | Seconds since the Unix Epoch (January 1 1970 00:00:00 GMT) | See also time() |
Unrecognized characters in the format string will be printed as-is. The Z format will always return 0 when using gmdate(). Note: Since this function only accepts integer timestamps the u format character is only useful when using the date_format() function with user based timestamps created with date_create().
The optional timestamp parameter is an integer Unix timestamp that defaults to the current local time if a timestamp is not given. In other words, it defaults to the value of time().
Returns a formatted date string.
<?
$format = "Y-m-d H:i:s";
$return = date($format);
echo $return;
2026-01-19 11:48:50
<?
$hour = 4;
$minute = 5;
$second = 6;
$month = 2;
$day = 3;
$year = 2001;
$format = "Y-m-d H:i:s";
$timestamp = mktime($hour, $minute, $second, $month, $day, $year);
$return = date($format, $timestamp);
echo $return;
2001-02-03 04:05:06
<?
$datetime = "fourth thursday of november";
$format = "Y-m-d H:i:s";
$timestamp = strtotime($datetime);
$return = date($format, $timestamp);
echo $return;
2026-11-26 00:00:00
<?
echo
date(DATE_ATOM). PHP_EOL.
date(DATE_COOKIE). PHP_EOL.
date(DATE_RSS). PHP_EOL.
date(DATE_W3C);
2026-01-19T11:48:50+00:00
Monday, 19-Jan-2026 11:48:50 UTC
Mon, 19 Jan 2026 11:48:50 +0000
2026-01-19T11:48:50+00:00
<?
echo "day". PHP_EOL.
"d: ". date("d"). PHP_EOL.
"D: ". date("D"). PHP_EOL.
"j: ". date("j"). PHP_EOL.
"l: ". date("l"). PHP_EOL.
"N: ". date("N"). PHP_EOL.
"S: ". date("S"). PHP_EOL.
"w: ". date("w"). PHP_EOL.
"z: ". date("z"). PHP_EOL.
PHP_EOL.
"week". PHP_EOL.
"W: ". date("W"). PHP_EOL.
PHP_EOL.
"month". PHP_EOL.
"F: ". date("F"). PHP_EOL.
"m: ". date("m"). PHP_EOL.
"M: ". date("M"). PHP_EOL.
"n: ". date("n"). PHP_EOL.
"t: ". date("t"). PHP_EOL.
PHP_EOL.
"year". PHP_EOL.
"L: ". date("L"). PHP_EOL.
"o: ". date("o"). PHP_EOL.
"y: ". date("y"). PHP_EOL.
"Y: ". date("Y"). PHP_EOL.
PHP_EOL.
"time". PHP_EOL.
"a: ". date("a"). PHP_EOL.
"A: ". date("A"). PHP_EOL.
"B: ". date("B"). PHP_EOL.
"g: ". date("g"). PHP_EOL.
"G: ". date("G"). PHP_EOL.
"h: ". date("h"). PHP_EOL.
"H: ". date("H"). PHP_EOL.
"i: ". date("i"). PHP_EOL.
"s: ". date("s"). PHP_EOL.
"u: ". date("u"). PHP_EOL.
"v: ". date("v"). PHP_EOL.
PHP_EOL.
"timezone". PHP_EOL.
"e: ". date("e"). PHP_EOL.
"I: ". date("I"). PHP_EOL.
"O: ". date("O"). PHP_EOL.
"P: ". date("P"). PHP_EOL.
"T: ". date("T"). PHP_EOL.
"Z: ". date("Z"). PHP_EOL.
PHP_EOL.
"full". PHP_EOL.
"c: ". date("c"). PHP_EOL.
"r: ". date("r"). PHP_EOL.
"U: ". date("U");
day
d: 19
D: Mon
j: 19
l: Monday
N: 1
S: th
w: 1
z: 18
week
W: 04
month
F: January
m: 01
M: Jan
n: 1
t: 31
year
L: 0
o: 2026
y: 26
Y: 2026
time
a: am
A: AM
B: 533
g: 11
G: 11
h: 11
H: 11
i: 48
s: 50
u: 000000
v: 000
timezone
e: UTC
I: 0
O: +0000
P: +00:00
T: UTC
Z: 0
full
c: 2026-01-19T11:48:50+00:00
r: Mon, 19 Jan 2026 11:48:50 +0000
U: 1768823330
<?
$format = 'l \t\h\e jS \o\f F Y \a\t h:i:s A';
$return = date($format);
echo $return;
Monday the 19th of January 2026 at 11:48:51 AM