date_create_from_format(
string $format,
string $datetime,
?DateTimeZone $timezone = null
): DateTime|falseThe format that the passed in string should be in. See the formatting options below. In most cases, the same letters as for the date() can be used.
| 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().
String representing the time.
A DateTimeZone object representing the desired time zone. If timezone is omitted and time contains no timezone, the current timezone will be used. Note: The timezone parameter and the current timezone are ignored when the time parameter either contains a UNIX timestamp (e.g. 946684800) or specifies a timezone (e.g. 2010-01-28T15:00:00+02:00).
Returns a new DateTime instance or false on failure.
<?
$format = "y m d";
$datetime = "01 02 03";
$return = date_create_from_format($format, $datetime);
print_r($return);
DateTime Object
(
[date] => 2001-02-03 02:36:02.000000
[timezone_type] => 3
[timezone] => UTC
)
<?
$format = "y m d";
$datetime = "01 02 03";
$timezone = timezone_open("America/Los_Angeles");
$return = date_create_from_format($format, $datetime, $timezone);
print_r($return);
DateTime Object
(
[date] => 2001-02-03 19:36:02.000000
[timezone_type] => 3
[timezone] => America/Los_Angeles
)