Пример #1
0
 /**
  * This will return the user timezone
  * @param int $user_id id of the user
  * @param String $forDisplay get the display, if true then return value will be formatted to the proper display
  * @return String depends on the value of format
  */
 public static function getUserTime($user_id = null, $forDisplay = false)
 {
     $config = new JXConfig();
     $user = JFactory::getUser($user_id);
     // First load account setting (if any) timezone to override timezone in language file
     $defaultTz = $config->getTimezone() != '' ? $config->getTimezone() : JText::_('JXLIB_DEFAULT_TIMEZONE');
     $my = !$user instanceof JUser && !$user instanceof JXUser ? JXFactory::getUser() : $user;
     $timeZoneStr = $my->getParam('timezone');
     // Second load user personalize timezone (if any) to override system default timezone
     $timeZoneStr = empty($timeZoneStr) ? $defaultTz : $timeZoneStr;
     $tz = new DateTimeZone($timeZoneStr);
     $date2 = new JDate('now', $tz);
     $offset = $date2->getOffset() / 3600;
     $date = new JDate();
     $date->setOffset($offset);
     $xdate = new JXDate();
     /* if the value want to be used as display purposes */
     if ($forDisplay) {
         return $xdate->formatDate($date);
     } else {
         return $xdate->format($date);
     }
 }
Пример #2
0
 /**
  *
  * $range array('month' => 2)	 
  */
 public static function get($actions, $user_id, $group_id, $range, $group_by)
 {
     if ($group_by == 'hour') {
         // todo: db datetime is server utc, might need to calculate for offset
         $config = new JXConfig();
         $defaultTz = $config->getTimezone() != '' ? $config->getTimezone() : JText::_('JXLIB_DEFAULT_TIMEZONE');
         $my = JXFactory::getUser($user_id);
         $myTimeZone = $my->getParam('timezone');
         // Second load user personalize timezone (if any) to override system default timezone
         $timeZoneStr = empty($myTimeZone) ? $defaultTz : $myTimeZone;
         $tz = new DateTimeZone($timeZoneStr);
         $date2 = new JDate('now', $tz);
         $offset = $date2->getOffset() / 3600;
     } else {
         $offset = 0;
     }
     $result = self::getDbRecord($actions, $user_id, $group_id, $range, $group_by, $offset);
     return self::formulateData($result, $group_by, $offset);
 }
Пример #3
0
 /**
  * Return standardized formatted date
  * NOTE: FOR TEMPLATE DISPLAY PURPOSE ONLY!!! DO NOT USE FOR DB QUERIES
  * Also use only for server generated time, NOT	 
  */
 static function formatDate($date, $long = self::LONG_DATE_FORMAT, $user = null)
 {
     // return original input date that cannot be processed
     if (strtotime($date) === false) {
         return $date;
     }
     $config = new JXConfig();
     // First load account setting (if any) timezone to override timezone in language file
     $defaultTz = $config->getTimezone() != '' ? $config->getTimezone() : JText::_('JXLIB_DEFAULT_TIMEZONE');
     $my = !$user instanceof JUser && !$user instanceof JXUser ? JXFactory::getUser() : $user;
     $timeZoneStr = $my->getParam('timezone');
     // Second load user personalize timezone (if any) to override system default timezone
     $timeZoneStr = empty($timeZoneStr) ? $defaultTz : $timeZoneStr;
     $tz = new DateTimeZone($timeZoneStr);
     if ($date instanceof JDate) {
         $date = $date->format('Y-m-d h:i:s');
     }
     $datenow = new JDate('now', $tz);
     $offset = $datenow->getOffset() / 3600;
     $date = new JDate($date);
     $date->setOffset($offset);
     $dateStr = $long == self::LONG_DATE_FORMAT ? $date->format(JText::_('JXLIB_DATE_FORMAT'), true) : $date->format(JText::_('JXLIB_DATE_SHORT_FORMAT'), true);
     if ($long == self::LONG_DATE_FORMAT) {
         // Test for today
         $dmy = $datenow->format(JText::_('JXLIB_DATE_DMY'), true);
         $dateStr = str_replace($dmy, JText::_('JXLIB_DATE_TODAY'), $dateStr);
         // Test for yesterday
         $datenow->modify('-1 day');
         $dmy = $datenow->format(JText::_('JXLIB_DATE_DMY'), true);
         $dateStr = str_replace($dmy, JText::_('JXLIB_DATE_YESTERDAY'), $dateStr);
     }
     return $dateStr;
 }
Пример #4
0
 public function getOffset($hours = false)
 {
     return C_JOOMLA_15 == 1 ? parent::getOffset() : parent::getOffsetFromGMT($hours);
 }