Skip to content

Commit 9db13ff

Browse files
committed
Add Date and DateTime stubs
1 parent f967b04 commit 9db13ff

File tree

2 files changed

+349
-0
lines changed

2 files changed

+349
-0
lines changed
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,200 @@
1+
<?php
2+
3+
namespace Bitrix\Main\Type;
4+
5+
use Bitrix\Main;
6+
use Bitrix\Main\Context;
7+
8+
/**
9+
* Date - класс для работы с датами.
10+
*
11+
* Обращается к пространству имён:
12+
* - \Main;
13+
* - \Main\DB;
14+
* - \Main\Context.
15+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/date/index.php
16+
*/
17+
class Date
18+
{
19+
/**
20+
* @param string $date String representation of date.
21+
* @param string $format PHP date format. If not specified, the format is got from the current culture.
22+
*
23+
* @return void
24+
* @throws Main\ObjectException
25+
*/
26+
public function __construct(string $date = null, string $format = null): void
27+
{ }
28+
29+
/**
30+
* Нестатический метод возвращает строковое значение формата даты.
31+
*
32+
* @param string $format PHP формат даты.
33+
* @return string
34+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/date/format.php
35+
*/
36+
public function format(string $format): string
37+
{
38+
return '';
39+
}
40+
41+
/**
42+
* Нестатический метод создаёт копию объекта.
43+
*
44+
* @return void
45+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/date/__clone.php
46+
*/
47+
public function __clone() :void
48+
{ }
49+
50+
/**
51+
* Нестатический метод выполняет арифметические действия с датами.
52+
*
53+
* Продолжительность каждого периода представлена числовым значением, следующим за указателем периода. Если продолжительность включает элементы времени, то этой части спецификации предшествует буква T.
54+
*
55+
* Форматы метода аналогичны форматам дат и интервалов в PHP.
56+
*
57+
* Примеры: два дня - 2D, две секунды - T2S, 6 лет и 5 минут - 6YT5M.
58+
*
59+
* Типы блоков должны вводиться слева на право от больших величин к меньшим. Для негативных периодов используйте первым символ "-"., как и для относительного периода.
60+
*
61+
* Примеры: "+5 weeks", "12 day", "-7 weekdays", '3 months - 5 days'
62+
*
63+
* @param string $interval Временной интервал для добавления.
64+
* @return $this
65+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/date/add.php
66+
*/
67+
public function add(string $interval): self
68+
{
69+
return $this;
70+
}
71+
72+
/**
73+
* Sets the current date of the DateTime object to a different date.
74+
*
75+
* @param integer $year
76+
* @param integer $month
77+
* @param integer $day
78+
* @return $this
79+
*/
80+
public function setDate(int $year, int $month, int $day)
81+
{
82+
return $this;
83+
}
84+
85+
/**
86+
* Нестатический метод возвращает Unix отметку времени для даты.
87+
*
88+
* @return integer
89+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/date/gettimestamp.php
90+
*/
91+
public function getTimestamp()
92+
{
93+
return 0;
94+
}
95+
96+
/**
97+
* Нестатический метод конвертирует дату в строку.
98+
*
99+
* @param Context\Culture $culture Региональные настройки даты.
100+
* @return string
101+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/date/tostring.php
102+
*/
103+
public function toString(?Context\Culture $culture = null): string
104+
{
105+
return '';
106+
}
107+
108+
/**
109+
* Нестатический метод конвертирует дату в строку в соответствии с региональными установками по умолчанию.
110+
*
111+
* @return string
112+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/date/__tostring.php
113+
*/
114+
public function __toString(): string
115+
{
116+
return '';
117+
}
118+
119+
/**
120+
* Статический метод конвертирует формат даты из региональных настроек в PHP формат.
121+
*
122+
* @param Context\Culture $culture Культурные настройки.
123+
* @return string
124+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/date/getformat.php
125+
*/
126+
public static function getFormat(?Context\Culture $culture = null): string
127+
{
128+
return '';
129+
}
130+
131+
/**
132+
* Returns short date culture format.
133+
*
134+
* @param Context\Culture $culture Culture.
135+
* @return string
136+
*/
137+
protected static function getCultureFormat(Context\Culture $culture)
138+
{
139+
return '';
140+
}
141+
142+
/**
143+
* Статический метод конвертирует формат даты из региональных настроек в PHP формат. Аналог старого CDatabase::DateFormatToPHP
144+
*
145+
* @param string $format Format string.
146+
* @return mixed
147+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/date/convertformattophp.php
148+
*/
149+
public static function convertFormatToPhp(string $format)
150+
{
151+
return '';
152+
}
153+
154+
/**
155+
* Статический метод проверяет строку на корректность даты (при попытке создать объект класса \Date).
156+
*
157+
* @param string $time Строковое представление даты.
158+
* @param string $format Формат PHP даты. Если не указано, то используется формат текущих настроек.
159+
* @return boolean
160+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/date/iscorrect.php
161+
*/
162+
public static function isCorrect(string $time, ?string $format = null): bool
163+
{
164+
return false;
165+
}
166+
167+
/**
168+
* Статический метод создаёт объект класса \Date из PHP объекта класса \DateTime.
169+
*
170+
* @param \DateTime $datetime Источник объекта.
171+
* @return static
172+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/date/createfromphp.php
173+
*/
174+
public static function createFromPhp(\DateTime $datetime): Date
175+
{
176+
return new Date();
177+
}
178+
179+
/**
180+
* Статический метод создаёт объект класса \Date из Unix метки времени.
181+
*
182+
* @param integer $timestamp Метка времени.
183+
* @return static
184+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/date/createfromtimestamp.php
185+
*/
186+
public static function createFromTimestamp(int $timestamp): Date
187+
{
188+
return new Date();
189+
}
190+
191+
/**
192+
* Creates Date object from Text (return array of result object)
193+
* Examples: "end of next week", "tomorrow morning", "friday 25.10"
194+
*
195+
* @param string $text
196+
* @return \Bitrix\Main\Type\DateTime|null
197+
*/
198+
public static function createFromText(string $text): ?DateTime
199+
{ }
200+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,149 @@
1+
<?php
2+
3+
namespace Bitrix\Main\Type;
4+
5+
use Bitrix\Main;
6+
use Bitrix\Main\Context;
7+
8+
class DateTime extends Date
9+
{
10+
/**
11+
* Undocumented function
12+
*
13+
* @param string $time String representation of datetime.
14+
* @param string $format PHP datetime format. If not specified, the format is got from the current culture.
15+
* @param \DateTimeZone $timezone Optional timezone object.
16+
* @return void
17+
* @throws Main\ObjectException
18+
*/
19+
public function __construct(string $time = null, string $format = null, \DateTimeZone $timezone = null): void
20+
{ }
21+
22+
/**
23+
* Нестатический метод конвертирует дату в строку с использованием региональных настроек и настроек глобальных временных зон.
24+
*
25+
* @param Context\Culture $culture Формат даты и времени для региональных настроек.
26+
* @return string
27+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/datetime/tostring.php
28+
*/
29+
public function toString(?Context\Culture $culture = null): string
30+
{
31+
return '';
32+
}
33+
34+
/**
35+
* Нестатический метод возвращает объект временной зоны.
36+
*
37+
* @return \DateTimeZone
38+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/datetime/gettimezone.php
39+
*/
40+
public function getTimeZone(): \DateTimeZone
41+
{
42+
return new \DateTimeZone('');
43+
}
44+
45+
/**
46+
* Нестатический метод устанавливает объект временной зоны.
47+
*
48+
* @param \DateTimeZone $timezone Объект временной зоны.
49+
* @return DateTime
50+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/datetime/settimezone.php
51+
*/
52+
public function setTimeZone(\DateTimeZone $timezone): DateTime
53+
{
54+
return $this;
55+
}
56+
57+
/**
58+
* Sets default timezone.
59+
*
60+
* @return DateTime
61+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/datetime/setdefaulttimezone.php
62+
*/
63+
public function setDefaultTimeZone(): DateTime
64+
{
65+
return $this;
66+
}
67+
68+
/**
69+
* Undocumented function
70+
*
71+
* @param integer $hour Hour value.
72+
* @param integer $minute Minute value.
73+
* @param integer $second Second value.
74+
* @return DateTime
75+
*/
76+
public function setTime(int $hour, int $minute, int $second = 0): DateTime
77+
{
78+
return $this;
79+
}
80+
81+
/**
82+
* Нестатический метод изменяет время с серверного на время пользователя с использованием настроек глабальных временных зон.
83+
*
84+
* @return DateTime
85+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/datetime/tousertime.php
86+
*/
87+
public function toUserTime(): DateTime
88+
{
89+
return $this;
90+
}
91+
92+
/**
93+
* Статический метод создаёт объект класса \DateTime из локального времени пользователя с использованием глобальных настроек временной зоны и региональных настроек по умолчанию.
94+
*
95+
* @param string $timeString Полное или краткое форматированное время.
96+
* @return DateTime
97+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/datetime/createfromusertime.php
98+
*/
99+
public static function createFromUserTime(string $timeString): DateTime
100+
{
101+
return new DateTime();
102+
}
103+
104+
/**
105+
* Returns long (including time) date culture format.
106+
*
107+
* @param Context\Culture $culture Culture.
108+
* @return string
109+
*/
110+
protected static function getCultureFormat(Context\Culture $culture): string
111+
{
112+
return '';
113+
}
114+
115+
/**
116+
* Статический метод создаёт объект класса \DateTime из объекта \DateTime PHP.
117+
*
118+
* @param \DateTime $datetime Объект источника.
119+
* @return static
120+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/datetime/createfromphp.php
121+
*/
122+
public static function createFromPhp(\DateTime $datetime): DateTime
123+
{
124+
return new DateTime();
125+
}
126+
127+
/**
128+
* Статический метод создаёт объект класса \DateTime из временной метки Unix.
129+
*
130+
* @param integer $timestamp Временная метка источника.
131+
* @return static
132+
* @link https://dev.1c-bitrix.ru/api_d7/bitrix/main/type/datetime/createfromtimestamp.php
133+
*/
134+
public static function createFromTimestamp(int $timestamp): DateTime
135+
{
136+
return new DateTime();
137+
}
138+
139+
/**
140+
* Creates DateTime object from string.
141+
* NULL will be returned on failure.
142+
*
143+
* @param string $timeString Full formatted time.
144+
* @param string $format PHP datetime format. If not specified, the format is got from the current culture.
145+
* @return DateTime|null
146+
*/
147+
public static function tryParse(string $timeString, string $format = null): ?DateTime
148+
{ }
149+
}

0 commit comments

Comments
 (0)