Format
Format Du er her: /  Forsiden  /  Kildekoden  /  Util  /  Format   Login nu   Login
Format
Format
Format Basic Format Format Base Format Format Component Format Format Db Format Format Dto Format Format Form Format Format Form-elements Format Format Jquery Format Format Layout Format Format Menu Format Format Menu-fisheye Format Format Mvc Format Format Tab Format Format Table Format Format Template Format Format Util  Format
Format
Format
Format Index
 
Tilbage

Navn : Format.php


Sample code, tutorial

Sådan benyttes komponenten Format klassen

Først skal du inkludere den fil der beskriver komponenten, som en klasse fil

  • <?
    require_once(HTML_PACKAGE_PATH.'/Format.php');
    ?>

Dernæst kan du enten benytte komponenten som et taglib (statiske metoder):

  • <?
    Format
    ::display($param1, $param2, $param3, ...);
    ?>

eller du kan lave en instance af komponenten og benytte metoderne direkte:

  • <?
    $object
    = new Format($param1, $param2, $param3, ...);
    print
    $object->getHtml();
    ?>

Parent html

Sådan vises komponenten Format klassen

1970-01-01 00:59:59

PHP source code

Den fulde PHP kildekode for Format klassen

<?
/**
* @package util
* @see HTML_UTIL_COMPONENT_PATH.'/Format.php'
* @copyright (c) http://Finn-Rasmussen.com
* @license http://Finn-Rasmussen.com/license/ myPHP License conditions
* @author http://Finn-Rasmussen.com
* @version 1.10
* @since 22-feb-2007
*/

/**
* The required files
*/
require_once(HTML_BASE_COMMON_PATH.'/Object.php');
if (
defined('HTML_LANGUAGE_UTIL_PATH')) {
    require_once(
HTML_LANGUAGE_UTIL_PATH.'/Locale.php');
    require_once(
HTML_LANGUAGE_UTIL_PATH.'/Currency.php');
}

/**
* Format the text accordingly to predefined styles
* <code>
* Usage:
*   $text  = '20081103142103';
*   $style = FORMAT_STYLE_DATE_LONG;
*   $html = new Format($text,$style,$pattern,$locale);
*   print $html->getHtml(); // 2008-11-03 14:21:03
* OR
*   Format::display($text,$style,$pattern,$locale);
* OR
*   $newtext = Format::get($text,$style,$pattern,$locale);
* </code>
* @package util
* @todo use number_format() with locale
*/

class Format extends Object {
    
/**
     * @var String $text The text to format
     */
    
var $text    = '';
    
/**
     * @see FORMAT_STYLE_TEXT
     * @var String $style The style to use
     */
    
var $style   = '';
    
/**
     * @see FORMAT_PATTERN_HEX
     * @var String $pattern The pattern to use
     */
    
var $pattern = '';
    
/**
     * @var Locale $locale The locale object to use
     */
    
var $locale = '';

    
/**
     * Constructor
     * @param String $text    The text to format accordingly
     * @param String $style   The format style
     * @param String $pattern The pattern to use
     * @param Locale $locale  The Locale object to use
     */
    
function Format($text,$style='',$pattern='',$locale='') {
        
$this->text = $text;
        
$this->style = $style!=''?$style:FORMAT_STYLE_TEXT;
        
$this->pattern = $pattern!=''?$pattern:'';
        if (
$this->pattern=='') {
            switch (
$this->style) {
                case
FORMAT_STYLE_HEX:
                    
$this->pattern = FORMAT_PATTERN_HEX;
                    break;
                case
FORMAT_STYLE_BIN:
                    
$this->pattern = FORMAT_PATTERN_BIN;
                    break;
                default:
                    
// Ignore
                    
break;
            }
        }
        if (
$locale!='') {
            if (
is_object($locale) && is_a($locale,CLASS_NAME_LOCALE)) {
                
$this->locale = $locale;
            } else {
                die(
$this->getClassName()." Unknown class name, expected Locale, found=".$locale);
            }
        }
        if (
$this->locale=='') {
            if (
defined('HTML_LANGUAGE_UTIL_PATH')) {
                
$this->locale = new Locale();
            }
        }
        
    }

    
/**
     * Returns the text as formatted html.
     * The Locale object is used to decide how the decimal and thousand seperators lool like
     * @return String The text formatted as specified by style
     */
    
function convert() {
        
$html  = '';
        
/**
         * Assume that the en/us number notation is used
         */
        
$dec_point     = '.';
        
$thousands_sep = ',';
        
$tmz = '+0100';  // TODO how ???
        
if ($this->locale!='' && is_a($this->locale,CLASS_NAME_LOCALE)) {
            switch (
$this->locale->getLanguage()) {
                case
LANGUAGE_DA:
                case
LANGUAGE_NO:
                case
LANGUAGE_SE:
                    
$dec_point     = ',';
                    
$thousands_sep = '.';
                    
$tmz = '+0100'; // TODO how ???
                
break;
            }
        }
        switch (
$this->style) {
            case
FORMAT_STYLE_DATE_RSS: // @todo And yes, I know about gmt+1 => +0100
                
$html .= date("D, d M Y H:i:s $tmz",strtotime($this->text));
                 break;
            case
FORMAT_STYLE_DATE_MYSQL:
                
$html .= date('YmdHis',strtotime($this->text));
                 break;
            case
FORMAT_STYLE_DATE_LONG:
                
$date  = date('Y-m-d H:i:s',strtotime($this->text));
                 
$html .= str_replace(' ',"&nbsp;",$date); // In order to avoid line breaks
                 
break;
            case
FORMAT_STYLE_DATE_SHORT:
            case
FORMAT_STYLE_DATE:
                
$html .= date('d-M-Y',strtotime($this->text));
                 break;
            case
FORMAT_STYLE_TIME:
                
$html .= date('H:i:s',strtotime($this->text));
                 break;
            case
FORMAT_STYLE_HEX:
                
$hex   = strtoupper(dechex($this->text)); // Translate from dec to hex
                
$html .= '0x'.substr($this->pattern,0,strlen($this->pattern)-strlen($hex)).$hex;
                break;
            case
FORMAT_STYLE_BIN:
                
$bin   = decbin($this->text); // Translate from dec to bin
                
$html .= substr($this->pattern,0,strlen($this->pattern)-strlen($bin)).$bin;
                break;
            case
FORMAT_STYLE_MONEY_SIMPLE:
            case
FORMAT_STYLE_DKK_SIMPLE:
                
$number = ($this->text*100)/100;
                
$html .= number_format($number,2,$dec_point,''); // 2062,50
                
$html = str_replace('-',HTML_ENTITY_MINUS,$html); // In order to avoid line breaks
                
$html = str_replace(' ',"&nbsp;",$html); // In order to avoid line breaks
                
break;
            case
FORMAT_STYLE_MONEY_SHORT:
            case
FORMAT_STYLE_DKK_SHORT:
                
$number = ($this->text*100)/100;
                
$html .= number_format($number,2,$dec_point,$thousands_sep); // 2.062,50
                
$html = str_replace('-',HTML_ENTITY_MINUS,$html); // In order to avoid line breaks
                
$html = str_replace(' ',"&nbsp;",$html); // In order to avoid line breaks
                
break;
            case
FORMAT_STYLE_MONEY_LONG:
            case
FORMAT_STYLE_DKK_LONG:
                
$number = ($this->text*100)/100;
                
$currencyText = '';
                if (
$this->locale!='' && is_a($this->locale,CLASS_NAME_LOCALE)) {
                    
$currency = new Currency($this->locale);
                    
$amount = $currency->calculate($number);
                    
$calculated = number_format($amount,2,$dec_point,$thousands_sep); // EUR 2.062,50
                    
$currencyText .= '('.$currency->getHtml().' '.$calculated.')';
                }
                
$original = number_format($number,2,$dec_point,$thousands_sep); // DKK 2.062,50
                
$html .= $currencyText.' DKK '.$original;
                
$html = str_replace('-',HTML_ENTITY_MINUS,$html); // In order to avoid line breaks
                
$html = str_replace(' ',"&nbsp;",$html); // In order to avoid line breaks
                
break;
            case
FORMAT_STYLE_LEFT:
            case
FORMAT_STYLE_CENTER:
            case
FORMAT_STYLE_RIGHT:
                
$html .= '<div class="'.$this->style.'">'.$this->text."</div>\r\n"; // Text align
                
break;
            default:
                
$html .= $this->text; // Raw
                
break;
        }
        return
$html;
    }

    
/**
     * Returns the text as formatted html
     * @return String The text formatted as specified by style
     */
    
function getHtml() {
        
$html  = $this->html;
        
$html .= $this->convert();
        return
$html;
    }

    
/**
     * Get the text as formatted html.
     * The Locale object is used to decide how the decimal and thousand seperators lool like
     * <code>
     * Usage:
     *   $text  = '20081103142103';
     *   $style = FORMAT_STYLE_DATE_LONG;
     *   $newtext = Format::get($text,$style,$pattern,$locale);
     *   print $newtext; // 2008-11-03 14:21:03
     * </code>
     * @static
     * @param  String $text    The text to format accordingly to style
     * @param  String $style   The format style
     * @param  String $pattern The pattern to use
     * @param  Locale $locale  The Locale object to use
     * @return String The text formatted as specified by style
     */
    
function get($text,$style='',$pattern='',$locale='') {
        
$format = new Format($text,$style,$pattern,$locale);
        return
$format->getHtml();
    }
    
    
/**
     * Display html
     * <code>
     * Usage:
     *   $text  = '20081103142103';
     *   $style = FORMAT_STYLE_DATE_LONG;
     *   Format::display($text,$style,$pattern,$locale);
     * </code>
     * @static
     * @param String $text    The text to format accordingly to style
     * @param String $style   The format style
     * @param String $pattern The pattern to use
     * @param Locale $locale  The Locale object to use
     */
    
function display($text,$style='',$pattern='',$locale='') {
        
$html = new Format($text,$style,$pattern,$locale);
        
$html->addHtml();
    }
}
?>

HTML source code

Den fulde HTML kildekode for Format klassen

<?
1970
-01-01&nbsp;00:59:59
?>

Class methods

Her er 'klasse metoderne' for Format klassen:

  • object
  • getclassname
  • getmsg
  • addhtml
  • gethtml
  • tostring
  • getcachefilename
  • save
  • content
  • stop
  • format
  • convert
  • get
  • display

Object vars

Her er 'objekt variable' for Format klassen:

  • html =>
  • sql =>
  • text => 20081103142103
  • style => 2
  • pattern =>
  • locale => Object

Format

Vis denne side på danmark

Vis denne side på Germany

Vis denne side på England

Vis denne side på France

Vis denne side på Italy

Vis denne side på Norge

Vis denne side på Sverige

Vis denne side på USA


 
Format
Format
Format