Verification: a143cc29221c9be0

New bitrix main type datetime bitrix

◆ __construct()

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

См. определение в файле 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 $datetime Source 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 $timestamp Source 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 $timeString Full or short formatted time.
Возвращает
DateTime

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

178  {

179 

180  try

181  {

182 

183  $time = new static($timeString);

184  }

185  catch(Main\ObjectException $e)

186  {

187 

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 $culture Culture.
Возвращает
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()

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 "-" : "+").$hours.$minutes;

73  }

◆ 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 $hour Hour value.
int $minute Minute value.
int $second Second value.
int $microseconds Microseconds 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 $timezone Timezone 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 $culture Culture 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()

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

Возвращает
DateTime

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

153  {

154 

156 

157 

158  static $diff = null;

159  if($diff === null)

160  {

161  $diff = \CTimeZone::GetOffset();

162  }

163  if($diff 0)

164  {

165  $this->add(($diff "-":"")."PT".abs($diff)."S");

166  }

167  return $this;

168  }

add($interval)

Performs dates arithmetic.

setDefaultTimeZone()

Sets default timezone.