FRED™  3.0
FRED™: Framework for Rapid and Easy Development
Local.php
Go to the documentation of this file.
1 <?php
2 
3 namespace Rsi\Fred;
4 
5 class Local extends Component{
6 
7  public $dateFormat = 'd-m-Y';
8  public $timeFormat = 'G:i';
9  public $dateTimeFormat = '[date], [time]';
10  public $durationFormat = '[d+]H:I';
11 
12  public $decimalPoint = ',';
13  public $thousandsSeparator = '.';
14  public $delimiter = ';';
15 
16  protected function init(){
17  parent::init();
18  $this->dateTimeFormat = strtr($this->dateTimeFormat,['[date]' => $this->dateFormat,'[time]' => $this->timeFormat]);
19  }
20 
21  public function clientConfig(){
22  return array_merge(parent::clientConfig(),[
23  'dateFormat' => $this->dateFormat,
24  'timeFormat' => $this->timeFormat,
25  'dateTimeFormat' => $this->dateTimeFormat,
26  'decimalPoint' => $this->decimalPoint,
27  'thousandsSeparator' => $this->thousandsSeparator,
28  'delimiter' => $this->delimiter
29  ]);
30  }
31 
32  public function formatDate($value){
33  if(!$value) return null;
34  if(!is_object($value)) $value = DateTime\Date::create($value,'Y-m-d');
35  return $value ? $value->format($this->dateFormat) : null;
36  }
37 
38  public function convertDate($value){
39  return DateTime\Date::create($value,$this->dateFormat);
40  }
41 
42  public function formatTime($value){
43  if(\Rsi::nothing($value)) return $value;
44  if(!is_object($value)) $value = DateTime\Time::create($value);
45  return $value ? $value->format($this->timeFormat) : null;
46  }
47 
48  public function convertTime($value){
49  return DateTime\Time::create($value,$this->timeFormat);
50  }
51 
52  public function formatDateTime($value){
53  if(\Rsi::nothing($value)) return $value;
54  if(!is_object($value)) $value = DateTime\DateTime::create($value);
55  return $value ? $value->format($this->dateTimeFormat) : null;
56  }
57 
58  public function convertDateTime($value){
59  return DateTime\DateTime::create($value,$this->dateTimeFormat);
60  }
61 
62  public function formatDuration($value){
63  return \Rsi\Number::formatDuration($value,$this->durationFormat);
64  }
65 
66  public function formatInt($value){
67  if(\Rsi::nothing($value)) return $value;
68  return number_format($value,0,$this->decimalPoint,$this->thousandsSeparator);
69  }
70 
71  public function convertInt($value){
72  return (int)str_replace($this->thousandsSeparator,'',$value);
73  }
74 
75  public function formatNumber($value,$decimals = null,$trim = null,$zero = null){
76  if(\Rsi::nothing($value)) return $value;
77  if($decimals === null) $decimals = ($index = strpos($value,'.')) ? strlen($value) - $index - 1 : 0;
78  $value = number_format($value,$decimals,$this->decimalPoint,$this->thousandsSeparator);
79  if($decimals && ($trim !== null))
80  while(($trim++ < $decimals) && !substr($value,-1)) $value = substr($value,0,-1);
81  if($zero !== null) $value = preg_replace('/' . preg_quote($this->decimalPoint,'/') . '0*$/',$zero,$value);
82  return rtrim($value,$this->decimalPoint);
83  }
84 
85  public function convertNumber($value,$decimals = null){
86  $value = str_replace($this->decimalPoint,'.',str_replace($this->thousandsSeparator,'',$value));
87  return is_numeric($value) ? ($decimals === null ? $value : round($value,$decimals)) : null;
88  }
89 
90  public function formatSpellOut($value,$locale = null,$format = null){
91  return \Rsi\Str::transform((new \NumberFormatter($locale,\NumberFormatter::SPELLOUT))->format($value),$format);
92  }
93 
94  public function formatRoman($value){
95  return \Rsi\Number::toRoman($value) ?: $value;
96  }
97 
98  public function formatBytes($value,$decimals = 1){
99  return \Rsi\Number::formatBytes($value,$decimals,$this->decimalPoint,$this->thousandsSeparator);
100  }
101 
102  public function convertBytes($value){
103  return \Rsi\Number::shorthandBytes($value);
104  }
105 
106 }
Rsi\Fred\Local\convertDate
convertDate($value)
Definition: Local.php:38
Rsi\Fred\Local\$durationFormat
$durationFormat
Definition: Local.php:10
Rsi\Fred\Local\formatNumber
formatNumber($value, $decimals=null, $trim=null, $zero=null)
Definition: Local.php:75
Rsi\Fred\Local\formatRoman
formatRoman($value)
Definition: Local.php:94
Rsi\Fred\Local\convertBytes
convertBytes($value)
Definition: Local.php:102
Rsi\Fred\Local\formatDateTime
formatDateTime($value)
Definition: Local.php:52
Rsi\Fred\Local\formatSpellOut
formatSpellOut($value, $locale=null, $format=null)
Definition: Local.php:90
Rsi\Fred\Local\convertNumber
convertNumber($value, $decimals=null)
Definition: Local.php:85
Rsi\Fred\Local\$decimalPoint
$decimalPoint
Definition: Local.php:12
Rsi\Fred\DateTime\DateTime\create
static create($value, $format=null)
Definition: DateTime.php:7
Rsi\Fred\Local\convertDateTime
convertDateTime($value)
Definition: Local.php:58
Rsi\Fred\Component
Basic component class.
Definition: Component.php:8
Rsi\Fred\Local\init
init()
Definition: Local.php:16
Rsi\Fred\Local\formatDuration
formatDuration($value)
Definition: Local.php:62
Rsi\Fred\Local\$dateTimeFormat
$dateTimeFormat
Definition: Local.php:9
Rsi\Fred\Local\clientConfig
clientConfig()
Public configuration.
Definition: Local.php:21
Rsi\Fred\Local\$thousandsSeparator
$thousandsSeparator
Definition: Local.php:13
Rsi\Fred\DateTime\Date\create
static create($value, $format=null)
Definition: Date.php:7
Rsi\Fred\Local\formatDate
formatDate($value)
Definition: Local.php:32
Rsi\Fred\DateTime\Time\create
static create($value, $format=null)
Definition: Time.php:7
Rsi\Fred\Local\convertInt
convertInt($value)
Definition: Local.php:71
Rsi\Fred\Local\$delimiter
$delimiter
Definition: Local.php:14
Rsi\Fred\Local\formatBytes
formatBytes($value, $decimals=1)
Definition: Local.php:98
Rsi\Fred\Local\formatInt
formatInt($value)
Definition: Local.php:66
Rsi\Fred\Local
Definition: Local.php:5
Rsi\Fred\Local\$dateFormat
$dateFormat
Definition: Local.php:7
Rsi\Fred\Local\$timeFormat
$timeFormat
Definition: Local.php:8
Rsi\Fred\Local\convertTime
convertTime($value)
Definition: Local.php:48
Rsi\Fred\Local\formatTime
formatTime($value)
Definition: Local.php:42
Rsi\Fred
Definition: Alive.php:3