function _parser_common_syndication_parse_date in Feeds 7.2
Same name and namespace in other branches
- 8.2 libraries/common_syndication_parser.inc \_parser_common_syndication_parse_date()
- 6 libraries/common_syndication_parser.inc \_parser_common_syndication_parse_date()
- 7 libraries/common_syndication_parser.inc \_parser_common_syndication_parse_date()
Parse a date comes from a feed.
Parameters
string $date_str: The date string in various formats.
Return value
int The timestamp of the string or the current time if can't be parsed.
3 calls to _parser_common_syndication_parse_date()
- _parser_common_syndication_atom10_parse in libraries/
common_syndication_parser.inc - Parse atom feeds.
- _parser_common_syndication_RDF10_parse in libraries/
common_syndication_parser.inc - Parse RDF Site Summary (RSS) 1.0 feeds in RDF/XML format.
- _parser_common_syndication_RSS20_parse in libraries/
common_syndication_parser.inc - Parse RSS2.0 feeds.
File
- libraries/
common_syndication_parser.inc, line 556 - Downloading and parsing functions for Common Syndication Parser. Pillaged from FeedAPI common syndication parser.
Code
function _parser_common_syndication_parse_date($date_str) {
// PHP < 5.3 doesn't like the GMT- notation for parsing timezones.
$date_str = str_replace('GMT-', '-', $date_str);
$date_str = str_replace('GMT+', '+', $date_str);
$parsed_date = strtotime($date_str);
if ($parsed_date === FALSE || $parsed_date == -1) {
$parsed_date = _parser_common_syndication_parse_w3cdtf($date_str);
}
if ($parsed_date === FALSE || $parsed_date == -1) {
// PHP does not support the UT timezone. Fake it. The system that generated
// this, Google Groups, probably meant UTC.
$date_str = strtolower(trim($date_str));
$last_three = substr($date_str, strlen($date_str) - 3, 3);
if ($last_three == ' ut') {
$parsed_date = strtotime($date_str . 'c');
}
}
return $parsed_date === FALSE ? time() : $parsed_date;
}