function _date_feeds_get_date_object in Feeds 7.2
Converts a date string or object into a DateObject.
Parameters
DateTime|string|int $value: The date value or object.
DateTimeZone $default_tz: The default timezone.
Return value
DateObject The converted DateObject.
1 call to _date_feeds_get_date_object()
- date_feeds_set_target in mappers/
date.inc - Callback for setting date values.
File
- mappers/
date.inc, line 181 - On behalf implementation of Feeds mapping API for date.module.
Code
function _date_feeds_get_date_object($value, DateTimeZone $default_tz) {
if ($value instanceof DateObject) {
return $value;
}
// Convert DateTime and FeedsDateTime.
if ($value instanceof DateTime) {
if (!$value
->getTimezone() || !preg_match('/[a-zA-Z]/', $value
->getTimezone()
->getName())) {
$value
->setTimezone($default_tz);
}
return new DateObject($value
->format(DATE_FORMAT_ISO), $value
->getTimezone());
}
if (is_string($value) || is_object($value) && method_exists($value, '__toString')) {
$value = trim($value);
}
// Filter out meaningless values.
if (empty($value) || !is_string($value) && !is_int($value)) {
return FALSE;
}
// Support year values.
if ((string) $value === (string) (int) $value) {
if ($value >= variable_get('date_min_year', 100) && $value <= variable_get('date_max_year', 4000)) {
return new DateObject('January ' . $value, $default_tz);
}
}
return new DateObject($value, $default_tz);
}