Bitrix-D7  20.5.0
Класс DateTime
Граф наследования:DateTime:
Date

Открытые члены

 __construct ($time=null, $format=null, \DateTimeZone $timezone=null)
 
 toString (Context\Culture $culture=null)
 Converts date to string, using Culture and global timezone settings. Подробнее...
 
 getTimeZone ()
 Returns timezone object. Подробнее...
 
 setTimeZone (\DateTimeZone $timezone)
 Sets timezone object. Подробнее...
 
 setDefaultTimeZone ()
 Sets default timezone. Подробнее...
 
 setTime ($hour, $minute, $second=0, $microseconds=0)
 
 toUserTime ()
 Changes time from server time to user time using global timezone settings. Подробнее...
 
- Открытые члены унаследованные от Date
 __construct ($date=null, $format=null)
 
 format ($format)
 Formats date value to string. Подробнее...
 
 __clone ()
 Produces the copy of the object. Подробнее...
 
 add ($interval)
 Performs dates arithmetic. Подробнее...
 
 setDate ($year, $month, $day)
 Sets the current date of the DateTime object to a different date. Подробнее...
 
 getTimestamp ()
 Returns Unix timestamp from date. Подробнее...
 
 getDiff (DateTime $time)
 Returns difference between dates. Подробнее...
 
 __toString ()
 Converts a date to the string with default culture format setting. Подробнее...
 

Открытые статические члены

static secondsToOffset ($seconds)
 
static createFromUserTime ($timeString)
 Creates DateTime object from local user time using global timezone settings and default culture. Подробнее...
 
static createFromPhp (\DateTime $datetime)
 Creates DateTime object from PHP \DateTime object. Подробнее...
 
static createFromTimestamp ($timestamp)
 Creates DateTime object from Unix timestamp. Подробнее...
 
static tryParse ($timeString, $format=null)
 Creates DateTime object from string. Подробнее...
 
- Открытые статические члены унаследованные от Date
static getFormat (Context\Culture $culture=null)
 Returns a date format from the culture in the php format. Подробнее...
 
static convertFormatToPhp ($format)
 Converts date format from culture to php format. Подробнее...
 
static isCorrect ($time, $format=null)
 Checks the string for correct date (by trying to create Date object). Подробнее...
 
static createFromText ($text)
 Creates Date object from Text (return array of result object) Examples: "end of next week", "tomorrow morning", "friday 25.10". Подробнее...
 

Защищенные статические члены

static getCultureFormat (Context\Culture $culture=null)
 Returns long (including time) date culture format. Подробнее...
 

Дополнительные унаследованные члены

- Защищенные члены унаследованные от Date
 parse ($format, $time)
 
- Защищенные данные унаследованные от Date
 $value
 

Подробное описание

См. определение в файле main/lib/type/datetime.php строка 7

Конструктор(ы)

◆ __construct()

__construct (   $time = null,
  $format = null,
\DateTimeZone  $timezone = null 
)
Аргументы
string$timeString representation of datetime.
string$formatPHP datetime format. If not specified, the format is got from the current culture.
\DateTimeZone$timezoneOptional timezone object.
Исключения
Main

См. определение в файле main/lib/type/datetime.php строка 16

17  {
18  if ($timezone === null)
19  {
20  $this->value = new \DateTime();
21  }
22  else
23  {
24  $this->value = new \DateTime(null, $timezone);
25  }
26 
27  if ($time !== null && $time !== "")
28  {
29  if ($format === null)
30  {
31  $format = static::getFormat();
32  }
33 
34  $parsedValue = $this->parse($format, $time);
35 
36  if($parsedValue === false)
37  {
38  throw new Main\ObjectException("Incorrect date/time: ".$time);
39  }
40 
41  if(isset($parsedValue["timestamp"]))
42  {
43  $this->value->setTimestamp($parsedValue["timestamp"]);
44  }
45  else
46  {
47  if(isset($parsedValue["zone_type"]) && $parsedValue["zone_type"] == 1)
48  {
49  if(isset($parsedValue["zone"]) && $parsedValue["zone"] <> 0)
50  {
51  $this->setTimeZone(new \DateTimeZone(static::secondsToOffset($parsedValue["zone"])));
52  }
53  }
54 
55  $microseconds = 0;
56  if($parsedValue['fraction'] > 0)
57  {
58  $microseconds = intval($parsedValue['fraction'] * 1000000);
59  }
60 
61  $this->value->setDate($parsedValue['year'], $parsedValue['month'], $parsedValue['day']);
62  $this->value->setTime($parsedValue['hour'], $parsedValue['minute'], $parsedValue['second'], $microseconds);
63  }
64  }
65  }
setTimeZone(\DateTimeZone $timezone)
Sets timezone object.

Методы

◆ createFromPhp()

static createFromPhp ( \DateTime  $datetime)
static

Creates DateTime object from PHP \DateTime object.

Аргументы
\DateTime$datetimeSource object.
Возвращает
static

Переопределяет метод предка Date.

См. определение в файле main/lib/type/datetime.php строка 230

231  {
232  $d = new static();
233  $d->value = clone $datetime;
234  return $d;
235  }

◆ createFromTimestamp()

static createFromTimestamp (   $timestamp)
static

Creates DateTime object from Unix timestamp.

Аргументы
int$timestampSource timestamp.
Возвращает
static

Переопределяет метод предка Date.

См. определение в файле main/lib/type/datetime.php строка 244

245  {
246  $d = new static();
247  $d->value->setTimestamp($timestamp);
248  return $d;
249  }

◆ createFromUserTime()

static createFromUserTime (   $timeString)
static

Creates DateTime object from local user time using global timezone settings and default culture.

Аргументы
string$timeStringFull or short formatted time.
Возвращает
DateTime

См. определение в файле main/lib/type/datetime.php строка 177

178  {
179  /** @var DateTime $time */
180  try
181  {
182  //try full datetime format
183  $time = new static($timeString);
184  }
185  catch(Main\ObjectException $e)
186  {
187  //try short date format
188  $time = new static($timeString, Date::getFormat());
189  $time->setTime(0, 0, 0);
190  }
191 
192  if(\CTimeZone::Enabled())
193  {
194  static $diff = null;
195  if($diff === null)
196  {
197  $diff = \CTimeZone::GetOffset();
198  }
199  if($diff <> 0)
200  {
201  $time->add(($diff > 0? "-":"")."PT".abs($diff)."S");
202  }
203  }
204  return $time;
205  }
static getFormat(Context\Culture $culture=null)
Returns a date format from the culture in the php format.

◆ getCultureFormat()

static getCultureFormat ( Context\Culture  $culture = null)
staticprotected

Returns long (including time) date culture format.

Аргументы
Context\Culture$cultureCulture.
Возвращает
string

Переопределяет метод предка Date.

См. определение в файле main/lib/type/datetime.php строка 214

215  {
216  if($culture)
217  {
218  return $culture->getDateTimeFormat();
219  }
220  return "DD.MM.YYYY HH:MI:SS";
221  }

◆ getTimeZone()

getTimeZone ( )

Returns timezone object.

Возвращает
\DateTimeZone

См. определение в файле main/lib/type/datetime.php строка 103

104  {
105  return $this->value->getTimezone();
106  }

◆ secondsToOffset()

static secondsToOffset (   $seconds)
static

См. определение в файле main/lib/type/datetime.php строка 67

68  {
69  $absSeconds = abs($seconds);
70  $hours = sprintf("%02d", floor($absSeconds / 3600));
71  $minutes = gmdate("i", $absSeconds % 3600);
72  return ($seconds < 0? "-" : "+").$hours.$minutes;
73  }

◆ setDefaultTimeZone()

setDefaultTimeZone ( )

Sets default timezone.

Возвращает
DateTime

См. определение в файле main/lib/type/datetime.php строка 126

127  {
128  $time = new \DateTime();
129  $this->setTimezone($time->getTimezone());
130  return $this;
131  }

◆ setTime()

setTime (   $hour,
  $minute,
  $second = 0,
  $microseconds = 0 
)
Аргументы
int$hourHour value.
int$minuteMinute value.
int$secondSecond value.
int$microsecondsMicroseconds value.
Возвращает
DateTime

См. определение в файле main/lib/type/datetime.php строка 141

142  {
143  $this->value->setTime($hour, $minute, $second, $microseconds);
144  return $this;
145  }

◆ setTimeZone()

setTimeZone ( \DateTimeZone  $timezone)

Sets timezone object.

Аргументы
\DateTimeZone$timezoneTimezone object.
Возвращает
DateTime

См. определение в файле main/lib/type/datetime.php строка 115

116  {
117  $this->value->setTimezone($timezone);
118  return $this;
119  }

◆ toString()

toString ( Context\Culture  $culture = null)

Converts date to string, using Culture and global timezone settings.

Аргументы
Context\Culture$cultureCulture contains datetime format.
Возвращает
string

Переопределяет метод предка Date.

См. определение в файле main/lib/type/datetime.php строка 82

83  {
84  if(\CTimeZone::Enabled())
85  {
86  $userTime = clone $this;
87  $userTime->toUserTime();
88 
89  $format = static::getFormat($culture);
90  return $userTime->format($format);
91  }
92  else
93  {
94  return parent::toString($culture);
95  }
96  }

◆ toUserTime()

toUserTime ( )

Changes time from server time to user time using global timezone settings.

Возвращает
DateTime

См. определение в файле main/lib/type/datetime.php строка 152

153  {
154  //first, move to server timezone
155  $this->setDefaultTimeZone();
156 
157  //second, adjust time according global timezone offset
158  static $diff = null;
159  if($diff === null)
160  {
161  $diff = \CTimeZone::GetOffset();
162  }
163  if($diff <> 0)
164  {
165  $this->add(($diff < 0? "-":"")."PT".abs($diff)."S");
166  }
167  return $this;
168  }
add($interval)
Performs dates arithmetic.
setDefaultTimeZone()
Sets default timezone.

◆ tryParse()

static tryParse (   $timeString,
  $format = null 
)
static

Creates DateTime object from string.

NULL will be returned on failure.

Аргументы
string$timeStringFull formatted time.
string$formatPHP datetime format. If not specified, the format is got from the current culture.
Возвращает
DateTime|null

См. определение в файле main/lib/type/datetime.php строка 258

259  {
260  if($timeString === '')
261  {
262  return null;
263  }
264 
265  if ($format === null)
266  {
267  $format = static::getFormat();
268  }
269 
270  try
271  {
272  $time = new DateTime($timeString, $format);
273  }
274  catch(Main\ObjectException $e)
275  {
276  $time = null;
277  }
278  return $time;
279  }

Объявления и описания членов класса находятся в файле: