date(
string $format,
?int $timestamp = null
): string
The 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 | 4 digit representation of a year | Example: 1999 |
y | 2 digit representation of a year | 00 - 99 |
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;
2025-01-20 09:37:39
<?
$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;
2025-11-27 00:00:00
<?
echo date(DATE_ATOM) . PHP_EOL;
echo date(DATE_COOKIE) . PHP_EOL;
echo date(DATE_RSS) . PHP_EOL;
echo date(DATE_W3C);
2025-01-20T09:37:39+00:00
Monday, 20-Jan-2025 09:37:39 UTC
Mon, 20 Jan 2025 09:37:39 +0000
2025-01-20T09:37:39+00:00
<?
echo "day" . PHP_EOL;
echo "d: " . date("d") . PHP_EOL;
echo "D: " . date("D") . PHP_EOL;
echo "j: " . date("j") . PHP_EOL;
echo "l: " . date("l") . PHP_EOL;
echo "N: " . date("N") . PHP_EOL;
echo "S: " . date("S") . PHP_EOL;
echo "w: " . date("w") . PHP_EOL;
echo "z: " . date("z") . PHP_EOL . PHP_EOL;
echo "week" . PHP_EOL;
echo "W: " . date("W") . PHP_EOL . PHP_EOL;
echo "month" . PHP_EOL;
echo "F: " . date("F") . PHP_EOL;
echo "m: " . date("m") . PHP_EOL;
echo "M: " . date("M") . PHP_EOL;
echo "n: " . date("n") . PHP_EOL;
echo "t: " . date("t") . PHP_EOL . PHP_EOL;
echo "year" . PHP_EOL;
echo "L: " . date("L") . PHP_EOL;
echo "o: " . date("o") . PHP_EOL;
echo "Y: " . date("Y") . PHP_EOL;
echo "y: " . date("y") . PHP_EOL . PHP_EOL;
echo "time" . PHP_EOL;
echo "a: " . date("a") . PHP_EOL;
echo "A: " . date("A") . PHP_EOL;
echo "B: " . date("B") . PHP_EOL;
echo "g: " . date("g") . PHP_EOL;
echo "G: " . date("G") . PHP_EOL;
echo "h: " . date("h") . PHP_EOL;
echo "H: " . date("H") . PHP_EOL;
echo "i: " . date("i") . PHP_EOL;
echo "s: " . date("s") . PHP_EOL;
echo "u: " . date("u") . PHP_EOL;
echo "v: " . date("v") . PHP_EOL . PHP_EOL;
echo "timezone" . PHP_EOL;
echo "e: " . date("e") . PHP_EOL;
echo "I: " . date("I") . PHP_EOL;
echo "O: " . date("O") . PHP_EOL;
echo "P: " . date("P") . PHP_EOL;
echo "T: " . date("T") . PHP_EOL;
echo "Z: " . date("Z") . PHP_EOL . PHP_EOL;
echo "full" . PHP_EOL;
echo "c: " . date("c") . PHP_EOL;
echo "r: " . date("r") . PHP_EOL;
echo "U: " . date("U");
day
d: 20
D: Mon
j: 20
l: Monday
N: 1
S: th
w: 1
z: 19
week
W: 04
month
F: January
m: 01
M: Jan
n: 1
t: 31
year
L: 0
o: 2025
Y: 2025
y: 25
time
a: am
A: AM
B: 442
g: 9
G: 9
h: 09
H: 09
i: 37
s: 39
u: 000000
v: 000
timezone
e: UTC
I: 0
O: +0000
P: +00:00
T: UTC
Z: 0
full
c: 2025-01-20T09:37:39+00:00
r: Mon, 20 Jan 2025 09:37:39 +0000
U: 1737365859
<?
$format = 'l \t\h\e jS \o\f F Y \a\t h:i:s A';
$return = date($format);
echo $return;
Monday the 20th of January 2025 at 09:37:39 AM