- $r = q("SELECT expire FROM user WHERE uid = %d", intval($uid));
- if (dbm::is_result($r)) {
- $expire_interval = $r[0]['expire'];
- if ($expire_interval>0) {
- $expire_date = new DateTime( '- '.$expire_interval.' days', new DateTimeZone('UTC'));
- $created_date = new DateTime($arr['created'], new DateTimeZone('UTC'));
- if ($created_date < $expire_date) {
- logger('item-store: item created ('.$arr['created'].') before expiration time ('.$expire_date->format(DateTime::W3C).'). ignored. ' . print_r($arr,true), LOGGER_DEBUG);
- return 0;
- }
+
+ // check for create date and expire time
+ $expire_interval = Config::get('system', 'dbclean-expire-days', 0);
+
+ $r = dba::select('user', array('expire'), array('uid' => $uid), array("limit" => 1));
+ if (dbm::is_result($r) && ($r['expire'] > 0) && (($r['expire'] < $expire_interval) || ($expire_interval == 0))) {
+ $expire_interval = $r['expire'];
+ }
+
+ if (($expire_interval > 0) && !empty($arr['created'])) {
+ $expire_date = time() - ($expire_interval * 86400);
+ $created_date = strtotime($arr['created']);
+ if ($created_date < $expire_date) {
+ logger('item-store: item created ('.date('c', $created_date).') before expiration time ('.date('c', $expire_date).'). ignored. ' . print_r($arr,true), LOGGER_DEBUG);
+ return 0;