$a = get_app();
- $arr['created'] = (($arr['created']) ? $arr['created'] : DateTimeFormat::utcNow());
- $arr['edited'] = (($arr['edited']) ? $arr['edited'] : DateTimeFormat::utcNow());
+ $arr['created'] = (($arr['created']) ? DateTimeFormat::utc($arr['created']) : DateTimeFormat::utcNow());
+ $arr['edited'] = (($arr['edited']) ? DateTimeFormat::utc($arr['edited']) : DateTimeFormat::utcNow());
$arr['type'] = (($arr['type']) ? $arr['type'] : 'event' );
$arr['cid'] = ((intval($arr['cid'])) ? intval($arr['cid']) : 0);
$arr['uri'] = (x($arr, 'uri') ? $arr['uri'] : item_new_uri($a->get_hostname(), $arr['uid']));
$register_policy = $gserver["register_policy"];
$registered_users = $gserver["registered-users"];
+ // See discussion under https://forum.friendi.ca/display/0b6b25a8135aabc37a5a0f5684081633
+ // It can happen that a zero date is in the database, but storing it again is forbidden.
+ if ($last_contact < NULL_DATE) {
+ $last_contact = NULL_DATE;
+ }
+ if ($last_failure < NULL_DATE) {
+ $last_failure = NULL_DATE;
+ }
+
if (!$force && !self::updateNeeded($gserver["created"], "", $last_failure, $last_contact)) {
logger("Use cached data for server ".$server_url, LOGGER_DEBUG);
return ($last_contact >= $last_failure);