rest_parse_date

The timeline below displays how wordpress function rest_parse_date has changed across different WordPress versions. If a version is not listed, refer to the next available version below.

WordPress Version: 4.5

/**
 * Parses an RFC3339 time into a Unix timestamp.
 *
 * @since 4.4.0
 *
 * @param string $date      RFC3339 timestamp.
 * @param bool   $force_utc Optional. Whether to force UTC timezone instead of using
 *                          the timestamp's timezone. Default false.
 * @return int Unix timestamp.
 */
function rest_parse_date($date, $force_utc = false)
{
    if ($force_utc) {
        $date = preg_replace('/[+-]\d+:?\d+$/', '+00:00', $date);
    }
    $regex = '#^\d{4}-\d{2}-\d{2}[Tt ]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}(?::\d{2})?)?$#';
    if (!preg_match($regex, $date, $matches)) {
        return false;
    }
    return strtotime($date);
}

WordPress Version: 4.4

/**
 * Parses an RFC3339 timestamp into a DateTime.
 *
 * @since 4.4.0
 *
 * @param string $date      RFC3339 timestamp.
 * @param bool   $force_utc Optional. Whether to force UTC timezone instead of using
 *                          the timestamp's timezone. Default false.
 * @return DateTime DateTime instance.
 */
function rest_parse_date($date, $force_utc = false)
{
    if ($force_utc) {
        $date = preg_replace('/[+-]\d+:?\d+$/', '+00:00', $date);
    }
    $regex = '#^\d{4}-\d{2}-\d{2}[Tt ]\d{2}:\d{2}:\d{2}(?:\.\d+)?(?:Z|[+-]\d{2}(?::\d{2})?)?$#';
    if (!preg_match($regex, $date, $matches)) {
        return false;
    }
    return strtotime($date);
}