Files
majestic/classes/Format.class.php
pzinovkin bf6a6e2e67 formatter for money & date/time
git-svn-id: svn+ssh://code.netmonsters.ru/svn/majestic/trunk@37 4cb57b5f-5bbd-dd11-951b-001d605cbbc5
2008-12-24 15:19:16 +00:00

127 lines
3.5 KiB
PHP
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?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'));
?>