Browse Source
formatter for money & date/time
formatter for money & date/time
git-svn-id: svn+ssh://code.netmonsters.ru/svn/majestic/trunk@37 4cb57b5f-5bbd-dd11-951b-001d605cbbc5master
pzinovkin
16 years ago
1 changed files with 127 additions and 0 deletions
@ -0,0 +1,127 @@ |
|||
<?php |
|||
/** |
|||
* Format |
|||
* |
|||
* @copyright |
|||
* @link |
|||
* @package Majestic |
|||
* @subpackage Core |
|||
* @since 24.12.2008 |
|||
* @version SVN: $Id$ |
|||
* @filesource $URL$ |
|||
*/ |
|||
|
|||
/** |
|||
* Отвечает за конвертацию данных между читаемым |
|||
* человеком и машиной форматами. |
|||
* |
|||
*/ |
|||
class Format |
|||
{ |
|||
/* Date & time */ |
|||
static protected $time_format = 'H:i:s'; |
|||
static protected $date_format = 'd.m.Y'; |
|||
static protected $date_time_format = 'd.m.Y H:i'; |
|||
static protected $timezone_offset = 0; |
|||
static protected $cache_time = array(); |
|||
|
|||
/* money */ |
|||
static protected $decimal_point = ','; |
|||
static protected $currency_symbol = ' руб.'; |
|||
static protected $frac_digits = 2; |
|||
static protected $cache_money = array(); |
|||
|
|||
|
|||
static public function int2money($int = 0, $currency = false) |
|||
{ |
|||
if(!isset(self::$cache_money[$int])){ |
|||
self::$cache_money[$int] = number_format($int/100, self::$frac_digits, self::$decimal_point, ''); |
|||
} |
|||
return self::$cache_money[$int] . (($currency) ? self::$currency_symbol : ''); |
|||
} |
|||
|
|||
static public function money2int($money) |
|||
{ |
|||
if(!isset(self::$cache_money[$money])){ |
|||
self::$cache_money[$money] = (int)str_replace(array('.', self::$decimal_point), '', $money); |
|||
} |
|||
return self::$cache_money[$money]; |
|||
} |
|||
|
|||
|
|||
/** |
|||
* Возвращает время в часах из секунд. |
|||
* |
|||
* @param int $timestamp |
|||
* @return string |
|||
*/ |
|||
static public function int2time($timestamp = 0) |
|||
{ |
|||
if(!isset(self::$cache_time[$timestamp])){ |
|||
self::$cache_time[$timestamp] = date(self::$time_format, $timestamp-self::$timezone_offset); |
|||
} |
|||
return self::$cache_time[$timestamp]; |
|||
} |
|||
|
|||
/** |
|||
* Возвращает дату и время из таймстампа. |
|||
* |
|||
* @param int $timestamp |
|||
* @param bool $hours |
|||
* @return string |
|||
*/ |
|||
static public function int2date($timestamp = 0, $hours = true) |
|||
{ |
|||
if(!isset(self::$cache_time[$timestamp])){ |
|||
self::$cache_time[$timestamp] = date(($hours) ? self::$date_time_format : self::$date_format , $timestamp); |
|||
} |
|||
return self::$cache_time[$timestamp]; |
|||
} |
|||
|
|||
/** |
|||
* Установка смещения для getTime |
|||
* |
|||
* @param int $offset |
|||
*/ |
|||
static public function setTimezoneOffset($offset) |
|||
{ |
|||
self::$timezone_offset = $offset; |
|||
} |
|||
|
|||
/** |
|||
* Преобразует время в секунды. |
|||
* |
|||
* @param string $time |
|||
* @return int |
|||
*/ |
|||
static public function time2int($time) |
|||
{ |
|||
if(!isset(self::$cache_time[$time])){ |
|||
$elements = explode(':', $time); |
|||
if(count($elements) == 3){ |
|||
list($h, $m, $s) = $elements; |
|||
self::$cache_time[$time] = ($h * 60 * 60) + ($m * 60) + $s; |
|||
} else { |
|||
self::$cache_time[$time] = (int)$time; |
|||
} |
|||
} |
|||
return self::$cache_time[$time]; |
|||
} |
|||
|
|||
/** |
|||
* Преобразует дату в таймстамп. |
|||
* |
|||
* @param mixed $time |
|||
* @return TimeFormat |
|||
*/ |
|||
static public function date2int($time) |
|||
{ |
|||
if(!isset(self::$cache_time[$time])){ |
|||
self::$cache_time[$time] = strtotime($time); |
|||
} |
|||
return self::$cache_time[$time]; |
|||
} |
|||
} |
|||
|
|||
Format::setTimezoneOffset(date('Z')); |
|||
?>
|
Write
Preview
Loading…
Cancel
Save
Reference in new issue