Parse a time/date generated with strftime

- « strftime

- strtotime »

- PHP Manual
- Date/Time Functions
- Parse a time/date generated with strftime

# strptime

(PHP 5 >= 5.1.0, PHP 7, PHP 8)

strptime — Parse a time/date generated with strftime()

Warning

This function has been DEPRECATED as of PHP 8.1.0. Relying on this function is highly discouraged.

### Description

strptime(string `$timestamp`, string `$format`): array|false

strptime() returns an array with the `timestamp` parsed, or `false` on error.

Month and weekday names and other language dependent strings respect the current locale set with setlocale() (`LC_TIME`).

### Parameters

`timestamp` (string)

  The string to parse (e.g. returned from strftime()).

`format` (string)

  The format used in `timestamp` (e.g. the same as used in strftime()). Note that some of the format options available to strftime() may not have any effect within strptime(); the exact subset that are supported will vary based on the operating system and C library in use.

  For more information about the format options, read the strftime() page.

### Return Values

Returns an array or `false` on failure.

The following parameters are returned in the array
parameters | Description
--- | ---
`"tm_sec"` | Seconds after the minute (0-61)
`"tm_min"` | Minutes after the hour (0-59)
`"tm_hour"` | Hour since midnight (0-23)
`"tm_mday"` | Day of the month (1-31)
`"tm_mon"` | Months since January (0-11)
`"tm_year"` | Years since 1900
`"tm_wday"` | Days since Sunday (0-6)
`"tm_yday"` | Days since January 1 (0-365)
`"unparsed"` | the `timestamp` part which was not recognized using the specified `format`

### Changelog

Version | Description
--- | ---
8.1.0 | This function has been deprecated. Use date_parse_from_format() instead (for locale-independent parsing), or IntlDateFormatter::parse() (for locale-dependent parsing)

### Examples

Example #1 strptime() example

    <?php$format = '%d/%m/%Y %H:%M:%S';$strf = strftime($format);echo "$strf\n";print_r(strptime($strf, $format));?>

The above example will output something similar to:

    03/10/2004 15:54:19

    Array
    (
        [tm_sec] => 19
        [tm_min] => 54
        [tm_hour] => 15
        [tm_mday] => 3
        [tm_mon] => 9
        [tm_year] => 104
        [tm_wday] => 0
        [tm_yday] => 276
        [unparsed] =>
    )

### Notes

> Note: This function is not implemented on Windows platforms.

> Note:

> Internally, this function calls the `strptime()` function provided by the system's C library. This function can exhibit noticeably different behaviour across different operating systems. The use of date_parse_from_format(), which does not suffer from these issues, is recommended.

> Note:

> `"tm_sec"` includes any leap seconds (currently upto 2 a year). For more information on leap seconds, see the » Wikipedia article on leap seconds.

### See Also

- IntlDateFormatter::parse() - Parse string to a timestamp value
- DateTime::createFromFormat() - Parses a time string according to a specified format
- checkdate() - Validate a Gregorian date
- strftime() - Format a local time/date according to locale settings
- date_parse_from_format() - Get info about given date formatted according to the specified format