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

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

 __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 (Context\Culture $culture=null)
 Converts a date to the string. Подробнее...
 
 __toString ()
 Converts a date to the string with default culture format setting. Подробнее...
 

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

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 createFromPhp (\DateTime $datetime)
 Creates Date object from PHP \DateTime object. Подробнее...
 
static createFromTimestamp ($timestamp)
 Creates Date object from Unix timestamp. Подробнее...
 
static createFromText ($text)
 Creates Date object from Text (return array of result object) Examples: "end of next week", "tomorrow morning", "friday 25.10". Подробнее...
 

Защищенные члены

 parse ($format, $time)
 

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

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

Защищенные данные

 $value
 

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

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

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

◆ __construct()

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

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

19  {
20  $this->value = new \DateTime();
21  if ($date !== null && $date !== "")
22  {
23  if ($format === null)
24  {
25  $format = static::getFormat();
26  }
27 
28  $parsedValue = $this->parse($format, $date);
29 
30  if($parsedValue === false)
31  {
32  throw new Main\ObjectException("Incorrect date: ".$date);
33  }
34 
35  if(isset($parsedValue["timestamp"]))
36  {
37  $this->value->setTimestamp($parsedValue["timestamp"]);
38  }
39  else
40  {
41  $this->value->setDate($parsedValue['year'], $parsedValue['month'], $parsedValue['day']);
42  }
43  }
44  $this->value->setTime(0, 0, 0);
45  }

Методы

◆ __clone()

__clone ( )

Produces the copy of the object.

Возвращает
void

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

120  {
121  $this->value = clone $this->value;
122  }

◆ __toString()

__toString ( )

Converts a date to the string with default culture format setting.

Возвращает
string

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

249  {
250  return $this->toString();
251  }
toString(Context\Culture $culture=null)
Converts a date to the string.

◆ add()

add (   $interval)

Performs dates arithmetic.

Each duration period is represented by an integer value followed by a period designator. If the duration contains time elements, that portion of the specification is preceded by the letter T. Period Designators: Y - years, M - months, D - days, W - weeks, H - hours, M - minutes, S - seconds. Examples: two days - 2D, two seconds - T2S, six years and five minutes - 6YT5M. The unit types must be entered from the largest scale unit on the left to the smallest scale unit on the right. Use first "-" char for negative periods. OR Relative period. Examples: "+5 weeks", "12 day", "-7 weekdays", '3 months - 5 days'

Аргументы
string$intervalTime interval to add.
Возвращает
$this

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

145  {
146  $i = $this->tryToCreateIntervalByDesignators($interval);
147  if ($i == null)
148  {
149  $i = \DateInterval::createFromDateString($interval);
150  }
151 
152  $this->value->add($i);
153 
154  return $this;
155  }

◆ convertFormatToPhp()

static convertFormatToPhp (   $format)
static

Converts date format from culture to php format.

Аргументы
string$formatFormat string.
Возвращает
mixed

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

306  {
307  static $from = array(
308  "YYYY", // 1999
309  "MMMM", // January - December
310  "MM", // 01 - 12
311  "DD", // 01 - 31
312  "TT", // AM - PM
313  "T", // am - pm
314  "MI", // 00 - 59
315  "SS", // 00 - 59
316  );
317  static $to = array(
318  "Y", // 1999
319  "F", // January - December
320  "m", // 01 - 12
321  "d", // 01 - 31
322  "A", // AM - PM
323  "a", // am - pm
324  "i", // 00 - 59
325  "s", // 00 - 59
326  );
327 
328  $format = str_replace($from, $to, $format);
329 
330  $tempFormat = $format;
331  $format = str_replace("HH", "H", $format); // 00 - 24
332  if ($tempFormat === $format)
333  {
334  $format = str_replace("H", "h", $format); // 01 - 12
335  }
336 
337  $tempFormat = $format;
338  $format = str_replace("GG", "G", $format); // 0 - 24
339  if ($tempFormat === $format)
340  {
341  $format = str_replace("G", "g", $format); // 1 - 12
342  }
343 
344  return $format;
345  }

◆ createFromPhp()

static createFromPhp ( \DateTime  $datetime)
static

Creates Date object from PHP \DateTime object.

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

Переопределяется в DateTime.

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

384  {
385  $d = new static();
386  $d->value = clone $datetime;
387  $d->value->setTime(0, 0, 0);
388  return $d;
389  }

◆ createFromText()

static createFromText (   $text)
static

Creates Date object from Text (return array of result object) Examples: "end of next week", "tomorrow morning", "friday 25.10".

Аргументы
string$text
Возвращает
DateTime|null

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

414  {
415  $result = Main\Text\DateConverter::decode($text);
416  if (empty($result))
417  {
418  return null;
419  }
420 
421  return $result[0]->getDate();
422  }
static decode($text, $limit=0)
Creates Date object from Text (return array of result object)

◆ createFromTimestamp()

static createFromTimestamp (   $timestamp)
static

Creates Date object from Unix timestamp.

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

Переопределяется в DateTime.

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

399  {
400  $d = new static();
401  $d->value->setTimestamp($timestamp);
402  $d->value->setTime(0, 0, 0);
403  return $d;
404  }

◆ format()

format (   $format)

Formats date value to string.

Аргументы
string$formatPHP date format.
Возвращает
string

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

110  {
111  return $this->value->format($format);
112  }

◆ getCultureFormat()

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

Returns short date culture format.

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

Переопределяется в DateTime.

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

290  {
291  if($culture)
292  {
293  return $culture->getDateFormat();
294  }
295  return "DD.MM.YYYY";
296  }

◆ getDiff()

getDiff ( DateTime  $time)

Returns difference between dates.

Аргументы
DateTime$time
Возвращает
\DateInterval

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

226  {
227  return $this->value->diff($time->value);
228  }

◆ getFormat()

static getFormat ( Context\Culture  $culture = null)
static

Returns a date format from the culture in the php format.

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

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

261  {
262  static $defaultCulture = null;
263 
264  if($culture === null)
265  {
266  if($defaultCulture === null)
267  {
268  $context = Context::getCurrent();
269  if($context)
270  {
271  $defaultCulture = $context->getCulture();
272  }
273  }
274  $culture = $defaultCulture;
275  }
276 
277  $format = static::getCultureFormat($culture);
278 
279  return static::convertFormatToPhp($format);
280  }
static getCurrent()
Static method returns current instance of context.

◆ getTimestamp()

getTimestamp ( )

Returns Unix timestamp from date.

Возвращает
int

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

215  {
216  return $this->value->getTimestamp();
217  }

◆ isCorrect()

static isCorrect (   $time,
  $format = null 
)
static

Checks the string for correct date (by trying to create Date object).

Аргументы
string$timeString representation of date.
string$formatPHP date format. If not specified, the format is got from the current culture.
Возвращает
bool

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

356  {
357  if (empty($time))
358  {
359  return false;
360  }
361 
362  $result = true;
363 
364  try
365  {
366  new static($time, $format);
367  }
368  catch (Main\ObjectException $ex)
369  {
370  $result = false;
371  }
372 
373  return $result;
374  }

◆ parse()

parse (   $format,
  $time 
)
protected
Аргументы
string$format
string$time
Возвращает
array|bool

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

53  {
54  $parsedValue = date_parse_from_format($format, $time);
55 
56  //Ignore errors when format is longer than date
57  //or date string is longer than format
58  if ($parsedValue['error_count'] > 1)
59  {
60  $error = current($parsedValue['errors']);
61 
62  if ($error === 'A two digit second could not be found')
63  {
64  //possibly missed seconds with am/pm format
65  $timestamp = strtotime($time);
66 
67  if ($timestamp === false)
68  {
69  return false;
70  }
71 
72  return [
73  "timestamp" => $timestamp,
74  ];
75  }
76  if ($error !== 'Trailing data' && $error !== 'Data missing')
77  {
78  return false;
79  }
80  }
81 
82  if(isset($parsedValue["relative"]["second"]) && $parsedValue["relative"]["second"] <> 0)
83  {
84  return [
85  "timestamp" => $parsedValue["relative"]["second"],
86  ];
87  }
88 
89  //normalize values
90  if($parsedValue['month'] === false)
91  {
92  $parsedValue['month'] = 1;
93  }
94  if($parsedValue['day'] === false)
95  {
96  $parsedValue['day'] = 1;
97  }
98 
99  return $parsedValue;
100  }

◆ setDate()

setDate (   $year,
  $month,
  $day 
)

Sets the current date of the DateTime object to a different date.

Аргументы
int$year
int$month
int$day
Возвращает
$this

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

166  {
167  $this->value->setDate($year, $month, $day);
168 
169  return $this;
170  }

◆ toString()

toString ( Context\Culture  $culture = null)

Converts a date to the string.

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

Переопределяется в DateTime.

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

238  {
239  $format = static::getFormat($culture);
240  return $this->format($format);
241  }
format($format)
Formats date value to string.

Поля

◆ $value

$value
protected

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


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