Ejemplo n.º 1
0
 public static function getRelativeDate($value, $countParts = 1)
 {
     if (version_compare(JVERSION, '1.6.0', 'ge')) {
         $tz = new DateTimeZone(JFactory::getApplication()->getCfg('offset'));
         $now = JFactory::getDate();
         $now->setTimeZone($tz);
     } else {
         $offset = JFactory::getConfig()->getValue('config.offset');
         $now = new JDate();
         $now->setOffset($offset);
     }
     $date = new JDate($value);
     $diff = $now->toUnix() - $date->toUnix();
     $result = $value;
     $timeParts = array(31536000 => 'MOD_JCOMMENTS_LATEST_RELATIVE_DATE_YEARS', 2592000 => 'MOD_JCOMMENTS_LATEST_RELATIVE_DATE_MONTHS', 604800 => 'MOD_JCOMMENTS_LATEST_RELATIVE_DATE_WEEKS', 86400 => 'MOD_JCOMMENTS_LATEST_RELATIVE_DATE_DAYS', 3600 => 'MOD_JCOMMENTS_LATEST_RELATIVE_DATE_HOURS', 60 => 'MOD_JCOMMENTS_LATEST_RELATIVE_DATE_MINUTES', 1 => 'MOD_JCOMMENTS_LATEST_RELATIVE_DATE_SECONDS');
     if ($diff < 5) {
         $result = JText::_('MOD_JCOMMENTS_LATEST_RELATIVE_DATE_NOW');
     } else {
         $dayDiff = floor($diff / 86400);
         $nowDay = date('d', $now->toUnix());
         $dateDay = date('d', $date->toUnix());
         if ($dayDiff == 1 || $dayDiff == 0 && $nowDay != $dateDay) {
             $result = JText::_('MOD_JCOMMENTS_LATEST_RELATIVE_DATE_YESTERDAY');
         } else {
             $count = 0;
             $resultParts = array();
             foreach ($timeParts as $key => $value) {
                 if ($diff >= $key) {
                     $time = floor($diff / $key);
                     $resultParts[] = modJCommentsLatestHelper::getPluralText($value, $time);
                     $diff = $diff % $key;
                     $count++;
                     if ($count > $countParts - 1 || $diff == 0) {
                         break;
                     }
                 }
             }
             if (count($resultParts)) {
                 $result = JText::sprintf('MOD_JCOMMENTS_LATEST_RELATIVE_DATE_AGO', implode(', ', $resultParts));
             }
         }
     }
     return $result;
 }