Bitrix-D7  20.0.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". Подробнее...
 

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

static getCultureFormat (Context\Culture $culture)
 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 = date_parse_from_format($format, $date);
29  //Ignore errors when format is longer than date
30  //or date string is longer than format
31  if ($parsedValue['error_count'] > 1)
32  {
33  if (
34  current($parsedValue['errors']) !== 'Trailing data'
35  && current($parsedValue['errors']) !== 'Data missing'
36  )
37  {
38  throw new Main\ObjectException("Incorrect date: ".$date);
39  }
40  }
41 
42  $this->value->setDate($parsedValue['year'], $parsedValue['month'], $parsedValue['day']);
43 
44  if (
45  isset($parsedValue["relative"])
46  && isset($parsedValue["relative"]["second"])
47  && $parsedValue["relative"]["second"] != 0
48  )
49  {
50  $this->value->add(new \DateInterval("PT".$parsedValue["relative"]["second"]."S"));
51  }
52  }
53  $this->value->setTime(0, 0, 0);
54  }

Методы

◆ __clone()

__clone ( )

Produces the copy of the object.

Возвращает
void

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

74  {
75  $this->value = clone $this->value;
76  }

◆ __toString()

__toString ( )

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

Возвращает
string

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

203  {
204  return $this->toString();
205  }

◆ 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 строка 98

99  {
100  $i = $this->tryToCreateIntervalByDesignators($interval);
101  if ($i == null)
102  {
103  $i = \DateInterval::createFromDateString($interval);
104  }
105 
106  $this->value->add($i);
107 
108  return $this;
109  }

◆ convertFormatToPhp()

static convertFormatToPhp (   $format)
static

Converts date format from culture to php format.

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

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

253  {
254  static $from = array(
255  "YYYY", // 1999
256  "MMMM", // January - December
257  "MM", // 01 - 12
258  "DD", // 01 - 31
259  "TT", // AM - PM
260  "T", // am - pm
261  "MI", // 00 - 59
262  "SS", // 00 - 59
263  );
264  static $to = array(
265  "Y", // 1999
266  "F", // January - December
267  "m", // 01 - 12
268  "d", // 01 - 31
269  "A", // AM - PM
270  "a", // am - pm
271  "i", // 00 - 59
272  "s", // 00 - 59
273  );
274 
275  $format = str_replace($from, $to, $format);
276 
277  $tempFormat = $format;
278  $format = str_replace("HH", "H", $format); // 00 - 24
279  if ($tempFormat === $format)
280  {
281  $format = str_replace("H", "h", $format); // 01 - 12
282  }
283 
284  $tempFormat = $format;
285  $format = str_replace("GG", "G", $format); // 0 - 24
286  if ($tempFormat === $format)
287  {
288  $format = str_replace("G", "g", $format); // 1 - 12
289  }
290 
291  return $format;
292  }

◆ createFromPhp()

static createFromPhp ( \DateTime  $datetime)
static

Creates Date object from PHP \DateTime object.

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

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

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

331  {
332  /** @var Date $d */
333  $d = new static();
334  $d->value = clone $datetime;
335  $d->value->setTime(0, 0, 0);
336  return $d;
337  }

◆ 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
Возвращает
\Bitrix\Main\Type\DateTime|null

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

363  {
364  $result = Main\Text\DateConverter::decode($text);
365  if (empty($result))
366  {
367  return null;
368  }
369 
370  return $result[0]->getDate();
371  }

◆ createFromTimestamp()

static createFromTimestamp (   $timestamp)
static

Creates Date object from Unix timestamp.

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

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

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

347  {
348  /** @var Date $d */
349  $d = new static();
350  $d->value->setTimestamp($timestamp);
351  $d->value->setTime(0, 0, 0);
352  return $d;
353  }

◆ format()

format (   $format)

Formats date value to string.

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

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

64  {
65  return $this->value->format($format);
66  }

◆ getCultureFormat()

static getCultureFormat ( Context\Culture  $culture)
staticprotected

Returns short date culture format.

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

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

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

241  {
242  return $culture->getDateFormat();
243  }

◆ getDiff()

getDiff ( DateTime  $time)

Returns difference between dates.

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

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

180  {
181  return $this->value->diff($time->value);
182  }

◆ 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 строка 214

215  {
216  static $defaultCulture = null;
217 
218  if($culture === null)
219  {
220  if($defaultCulture === null)
221  {
222  $context = Context::getCurrent();
223  $defaultCulture = $context->getCulture();
224  }
225  $culture = $defaultCulture;
226  }
227 
228  $format = static::getCultureFormat($culture);
229 
230  return static::convertFormatToPhp($format);
231  }

◆ getTimestamp()

getTimestamp ( )

Returns Unix timestamp from date.

Возвращает
int

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

169  {
170  return $this->value->getTimestamp();
171  }

◆ 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 строка 302

303  {
304  if (empty($time))
305  {
306  return false;
307  }
308 
309  $result = true;
310 
311  try
312  {
313  new static($time, $format);
314  }
315  catch (Main\ObjectException $ex)
316  {
317  $result = false;
318  }
319 
320  return $result;
321  }

◆ 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 строка 119

120  {
121  $this->value->setDate($year, $month, $day);
122 
123  return $this;
124  }

◆ 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 строка 191

192  {
193  $format = static::getFormat($culture);
194  return $this->format($format);
195  }

Поля

◆ $value

$value
protected

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


Объявления и описания членов класса находятся в файле:
Bitrix\Main\Type\Date\toString
toString(Context\Culture $culture=null)
Converts a date to the string.
Definition: main/lib/type/date.php:191
Bitrix\Main\Type\Date\format
format($format)
Formats date value to string.
Definition: main/lib/type/date.php:63
Bitrix\Main\Text\DateConverter\decode
static decode($text, $limit=0)
Creates Date object from Text (return array of result object)
Definition: dateconverter.php:17
Bitrix\Main\Context\getCurrent
static getCurrent()
Static method returns current instance of context.
Definition: main/lib/context.php:194
Bitrix\Main\Type\Date\$value
$value
Definition: main/lib/type/date.php:10