How to format a date using different formats in PHP

1 Answer

0 votes
// PHP uses the date() function (or DateTime::format) with its own formatting tokens.

/*
run:

PHP Date Format Tokens:
Y β€” 4‑digit year
y β€” 2‑digit year
m β€” month (01–12)
n β€” month (1–12, no leading zero)
d β€” day of month
j β€” day of month (no leading zero)
H β€” hour (00–23)
h β€” hour (01–12)
i β€” minutes
s β€” seconds
A β€” AM/PM
l β€” full weekday name
D β€” short weekday name
F β€” full month name
M β€” short month name
z β€” day of year (0–365)
W β€” ISO week number
T β€” timezone abbreviation
c β€” ISO 8601 datetime
r β€” RFC 2822 datetime
*/

$now = time();                 // Current Unix timestamp
$dt  = new DateTime();         // Modern DateTime object

// --- Basic numeric formats ---
echo "[ISO 8601] YYYY-MM-DD: " . date("Y-m-d", $now) . "\n";
echo "[European] DD/MM/YYYY: " . date("d/m/Y", $now) . "\n";
echo "[US] MM-DD-YYYY: " . date("m-d-Y", $now) . "\n";

// --- Time formats ---
echo "[24-hour] HH:MM:SS: " . date("H:i:s", $now) . "\n";
echo "[12-hour] HH:MM:SS AM/PM: " . date("h:i:s A", $now) . "\n";

// --- Full date with names ---
echo "Full weekday + month name: " . date("l, F d, Y", $now) . "\n";
echo "Short weekday + month name: " . date("D, M d", $now) . "\n";

// --- Combined date/time ---
echo "Full timestamp: " . date("Y-m-d H:i:s", $now) . "\n";
echo "ISO 8601 datetime: " . date("c", $now) . "\n";

// --- With timezone ---
echo "RFC 2822 format: " . date("r", $now) . "\n";
echo "Timezone abbreviation: " . date("T", $now) . "\n";

// --- Special formats ---
echo "Day of year: " . date("z", $now) . "\n";   // 0–365
echo "Week of year: " . date("W", $now) . "\n";  // ISO week number
echo "Leap year? " . date("L", $now) . "\n";     // 1 or 0

// --- Custom formats ---
echo "Long date: " . date("l, F j, Y", $now) . "\n";
echo "Short date: " . date("d/m/y", $now) . "\n";
echo "Time only: " . date("H:i", $now) . "\n";

// --- Using DateTime object ---
echo "DateTime object format: " . $dt->format("Y-m-d H:i:s") . "\n";



/*
run:

[ISO 8601] YYYY-MM-DD: 2026-05-20
[European] DD/MM/YYYY: 20/05/2026
[US] MM-DD-YYYY: 05-20-2026
[24-hour] HH:MM:SS: 13:21:09
[12-hour] HH:MM:SS AM/PM: 01:21:09 PM
Full weekday + month name: Wednesday, May 20, 2026
Short weekday + month name: Wed, May 20
Full timestamp: 2026-05-20 13:21:09
ISO 8601 datetime: 2026-05-20T13:21:09+00:00
RFC 2822 format: Wed, 20 May 2026 13:21:09 +0000
Timezone abbreviation: UTC
Day of year: 139
Week of year: 21
Leap year? 0
Long date: Wednesday, May 20, 2026
Short date: 20/05/26
Time only: 13:21
DateTime object format: 2026-05-20 13:21:09

*/

 



answered 9 hours ago by avibootz
...