Formatting a Date
While the Unix timestamp is programmatically useful, it isn't a convenient display format. The date( ) and gmdate( ) functions return a human-readable formatted date and time:
string date(string format [, integer timestamp]) string gmdate(string format [, integer timestamp])
The format of the returned string is determined by the format argument. A predetermined date can be formatted by passing in the optional timestamp argument. Otherwise, both functions format the current time. The format string uses the formatting characters listed in Table 2-3 to display various components or characteristics of the timestamp. To include the characters from the table, the backslash character is used. The following examples show various combinations:
// Set up a timestamp for 08:15am 24 Aug 1964
$var = mktime(8, 15, 25, 8, 24, 1964);
// "24/08/1964"
echo date('d/m/Y', $var);
// "08/24/64"
echo date('m/d/y', $var);
// "Born on Thursday 24th of August"
echo date('\B\o\r\n \o\n l jS \of F", $var);
Table 2-3. Formatting characters that represent various date and time components
| Formatting character | Meaning |
|---|---|
| a, A | "am" or "pm"; "AM" or "PM" |
| S | Two-character English ordinal suffix: "st", "nd", "rd", "th" |
| d, j | Day of the month: with leading zeros: "01"; without: "1" |
| D, l | Day of the week: as three letters: "Mon"; spelled out: "Monday" |
| M, F | Month: as three letters: "Jan"; spelled out: "January" |
| m, n | Month: with leading zeros: "01"-"12"; without: "1"-"12" |
| h, g | Hour, 12-hour format: with leading zeros: "09"; without: "9" |
| H, G | Hour, 24-hour format: with leading zeros: "01"; without "1" |
| i | Minutes:"00" to "59" |
| s | Seconds: "00" to "59" |
| Y, y | Year: four digits "2002"; two digits "02" |
| r | RFC-2822 formatted date: e.g., "Tue, 29 Jan 2002 09:15:33 +1000" (added in PHP 4.0.4) |
| w | Day of the week as number: "0" (Sunday) to "6" (Saturday) |
| t | Days in the month: "28" to "31" |
| z | Days in the year: "0" to "365" |
| B | Swatch Internet time |
| L | Leap year: "0" for normal year; "1" for leap-year |
| I | Daylight savings time: "0" for standard time; "1" for daylight savings |
| O | Difference to Greenwich Mean Time in hours: "+0200" |
| T | Time zone setting of this machine |
| Z | Time zone offset in seconds: "-43200" to "43200" |
| U | Seconds since the epoch: 00:00:00 1/1/1970 |
PHP also provides the equivalent functions:
string strftime(string format [, integer timestamp]) string gmstrftime(string format [, integer timestamp])
The format string uses the same formatting character sequences as the C library function strftime( ).