wp-includes/SimplePie/src/Parse/Date.php:643Parse a superset of W3C-DTF (allows hyphens and colons to be omitted, as well as allowing any of upper or lower case "T", horizontal tabs, or spaces to be used as the time separator (including more than one))
$datestringint|false public function date_w3cdtf(string $date) { $pcre = <<<'PCRE' / ^ (?P<year>[0-9]{4}) (?: -? (?P<month>[0-9]{2}) (?: -? (?P<day>[0-9]{2}) (?: [Tt\x09\x20]+ (?P<hour>[0-9]{2}) (?: :? (?P<minute>[0-9]{2}) (?: :? (?P<second>[0-9]{2}) (?: . (?P<second_fraction>[0-9]*) )? )? )? (?: (?P<zulu>Z) | (?P<tz_sign>[+\-]) (?P<tz_hour>[0-9]{1,2}) :? (?P<tz_minute>[0-9]{1,2}) ) )? )? )? $ /xPCRE; if (preg_match($pcre, $date, $match)) { // Fill in empty matches and convert to proper types. $year = (int) $match['year']; $month = isset($match['month']) ? (int) $match['month'] : 1; $day = isset($match['day']) ? (int) $match['day'] : 1; $hour = isset($match['hour']) ? (int) $match['hour'] : 0; $minute = isset($match['minute']) ? (int) $match['minute'] : 0; $second = isset($match['second']) ? (int) $match['second'] : 0; $second_fraction = isset($match['second_fraction']) ? ((int) $match['second_fraction']) / (10 ** strlen($match['second_fraction'])) : 0; $tz_sign = ($match['tz_sign'] ?? '') === '-' ? -1 : 1; $tz_hour = isset($match['tz_hour']) ? (int) $match['tz_hour'] : 0; $tz_minute = isset($match['tz_minute']) ? (int) $match['tz_minute'] : 0; // Numeric timezone $timezone = $tz_hour * 3600; $timezone += $tz_minute * 60; $timezone *= $tz_sign; // Convert the number of seconds to an integer, taking decimals into account $second = (int) round($second + $second_fraction); return gmmktime($hour, $minute, $second, $month, $day, $year) - $timezone; } return false; }2 changes between 6.7.7 and 7.1.0.
Signature, return type and hooks compared across 5 parsed releases.
$date retyped from untyped to string.verified against sourceint to int|false.verified against sourcesrc/wp-includes/SimplePie/src/Parse/Date.php, and regenerated for each WordPress release so it tracks the code rather than a snapshot of it.