Erebot  latest
A modular IRC bot for PHP 5.3+
DateTimeVariable.php
1 <?php
2 /*
3  This file is part of Erebot, a modular IRC bot written in PHP.
4 
5  Copyright © 2010 François Poirotte
6 
7  Erebot is free software: you can redistribute it and/or modify
8  it under the terms of the GNU General Public License as published by
9  the Free Software Foundation, either version 3 of the License, or
10  (at your option) any later version.
11 
12  Erebot is distributed in the hope that it will be useful,
13  but WITHOUT ANY WARRANTY; without even the implied warranty of
14  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15  GNU General Public License for more details.
16 
17  You should have received a copy of the GNU General Public License
18  along with Erebot. If not, see <http://www.gnu.org/licenses/>.
19 */
20 
21 namespace Erebot\Styling\Variables;
22 
27 class DateTimeVariable implements \Erebot\Styling\Variables\DateTimeInterface
28 {
30  protected $value;
31 
33  protected $datetype;
34 
36  protected $timetype;
37 
39  protected $timezone;
40 
67  public function __construct($value, $datetype, $timetype, $timezone = null)
68  {
69  $this->value = $value;
70  $this->datetype = $datetype;
71  $this->timetype = $timetype;
72  $this->timezone = $timezone;
73  }
74 
76  {
77  $timezone = ($this->timezone !== null)
78  ? $this->timezone
79  : date_default_timezone_get();
80 
81  $formatter = new \IntlDateFormatter(
82  $translator->getLocale(\Erebot\IntlInterface::LC_TIME),
85  $timezone
86  );
87  return (string) $formatter->format($this->value);
88  }
89 
90  public function getValue()
91  {
92  return $this->value;
93  }
94 
95  public function getDateType()
96  {
97  return $this->datetype;
98  }
99 
100  public function getTimeType()
101  {
102  return $this->timetype;
103  }
104 
105  public function getTimeZone()
106  {
107  return $this->timezone;
108  }
109 }
Interface to provide internationalization.
$timezone
Timezone to use during the rendering prcess.
Definition: CLI.php:21
$value
A value expressing a date/time.
$datetype
Type of rendering to apply to dates.
render(\Erebot\IntlInterface $translator)
A class used to format dates/times.
__construct($value, $datetype, $timetype, $timezone=null)
$translator
Translator to use to improve rendering.
Definition: Styling.php:116
const LC_TIME
Date and time formats.
$timetype
Type of rendering to apply to times.