%PDF-1.5 %���� ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY
Server IP : 49.231.201.246 / Your IP : 216.73.216.248 Web Server : Apache/2.4.18 (Ubuntu) System : Linux 246 4.4.0-210-generic #242-Ubuntu SMP Fri Apr 16 09:57:56 UTC 2021 x86_64 User : root ( 0) PHP Version : 7.0.33-0ubuntu0.16.04.16 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : ON | Sudo : ON | Pkexec : ON Directory : /var/www/html/old/libraries/kunena/ |
Upload File : |
<?php /** * Kunena Component * @package Kunena.Framework * * @copyright (C) 2008 - 2014 Kunena Team. All rights reserved. * @license http://www.gnu.org/copyleft/gpl.html GNU/GPL * @link http://www.kunena.org **/ defined ( '_JEXEC' ) or die (); jimport ( 'joomla.utilities.date' ); /** * Class KunenaDate */ class KunenaDate extends JDate { public static function getInstance($date = 'now', $tz = null) { return new KunenaDate($date, $tz); } public function toTimeAgo() { KUNENA_PROFILER ? KunenaProfiler::instance()->start('function '.__CLASS__.'::'.__FUNCTION__.'()') : null; $chunks = array ( 'y' => array (JText::_('COM_KUNENA_DATE_YEAR'), JText::_('COM_KUNENA_DATE_YEARS') ), 'm' => array (JText::_('COM_KUNENA_DATE_MONTH'), JText::_('COM_KUNENA_DATE_MONTHS') ), 'w' => array (JText::_('COM_KUNENA_DATE_WEEK'), JText::_('COM_KUNENA_DATE_WEEKS') ), 'd' => array (JText::_('COM_KUNENA_DATE_DAY'), JText::_('COM_KUNENA_DATE_DAYS') ), 'h' => array (JText::_('COM_KUNENA_DATE_HOUR'), JText::_('COM_KUNENA_DATE_HOURS') ), 'i' => array (JText::_('COM_KUNENA_DATE_MINUTE'), JText::_('COM_KUNENA_DATE_MINUTES') ) ); // we only want to output two chunks of time here, eg: "x years, xx months" or "x days, xx hours" $tick = 0; $output = ''; $diff = $this->diff(new JDate); foreach ($diff as $name=>$count) { if ($name == 'd') { // Days are special case as we want to break it into weeks and days. $weeks = (int) ($count / 7); if ($weeks) { $count %= 7; $output .= ($weeks == 1) ? " 1 {$chunks['w'][0]}" : " {$weeks} {$chunks['w'][1]}"; if (2 == ++$tick) break; } } if (!$count || !isset($chunks[$name])) continue; $output .= ($count == 1) ? " 1 {$chunks[$name][0]}" : " {$count} {$chunks[$name][1]}"; if (2 == ++$tick) break; } if (!$output) { $output .= '0 '.JText::_('COM_KUNENA_DATE_MINUTES'); } $output = JText::sprintf('COM_KUNENA_LIB_TIME_AGO', trim($output)); KUNENA_PROFILER ? KunenaProfiler::instance()->stop('function '.__CLASS__.'::'.__FUNCTION__.'()') : null; return $output; } public function toTimezone() { $timezone = $this->getOffsetFromGMT(true); return sprintf('%+d:%02d', $timezone, ($timezone*60)%60); } public function toSpan($mode = 'datetime_today', $title = 'ago', $offset=false, $class='') { return '<span class="kdate '.$class.'" title="'.$this->toKunena($title, $offset).'">'.$this->toKunena($mode, $offset).'</span>'; } public function toKunena($mode = 'datetime_today', $offset=false) { if ($this->format('Y')<1902) return JText::_('COM_KUNENA_LIB_DATETIME_UNKNOWN'); if (preg_match ( '/^config_/', $mode ) == 1) { $option = substr ( $mode, 7 ); $mode = KunenaFactory::getConfig ()->$option; } $modearr = explode ( '_', $mode ); $dateformat = strtolower ($modearr[0]); $time = false; switch ($dateformat) { case 'none' : return ''; case 'ago' : return $this->toTimeAgo(); case 'time' : $time = true; $usertime_format = JText::_('COM_KUNENA_LIB_TIME_FMT'); break; case 'date' : $usertime_format = JText::_('COM_KUNENA_LIB_DATE_FMT'); break; case 'datetime': $time = true; $usertime_format = JText::_('COM_KUNENA_LIB_DATETIME_FMT'); break; default: $usertime_format = $mode; } if (!$offset) { $app = JFactory::getApplication (); $my = JFactory::getUser(); if ($my->id) $offset = $my->getParam('timezone', $app->getCfg ( 'offset', 'utc' )); else $offset = $app->getCfg ( 'offset', 'utc' ); } try { $offset = new DateTimeZone($offset); $this->setTimezone($offset); } catch (Exception $e) { trigger_error('Kunena: Timezone issue!'); } // Today and Yesterday? if (end($modearr) == 'today') { $now = JFactory::getDate ( 'now' ); if ($offset) $now->setTimezone($offset); $now = @getdate ( $now->toUnix(true) ); $then = @getdate ( $this->toUnix(true) ); // Same day of the year, same year.... Today! if ($then ['yday'] == $now ['yday'] && $then ['year'] == $now ['year']) { return trim(JText::sprintf('COM_KUNENA_LIB_DATE_TODAY', $time ? $this->format(JText::_('COM_KUNENA_LIB_TIME_FMT'), true) : '')); } // Day-of-year is one less and same year, or it's the first of the year and that's the last of the year... if (($then ['yday'] == $now ['yday'] - 1 && $then ['year'] == $now ['year']) || ($now ['yday'] == 0 && $then ['year'] == $now ['year'] - 1) && $then ['mon'] == 12 && $then ['mday'] == 31) { return trim(JText::sprintf('COM_KUNENA_LIB_DATE_YESTERDAY', $time ? $this->format(JText::_('COM_KUNENA_LIB_TIME_FMT'), true) : '')); } } return $this->format($usertime_format, true); } }