"If $timezone is omitted or null, the current timezone will be used." - note, that timezone IS NOT equal offset, if its important for your application.
If default timezone = Europe/Moscow, then:
echo (new \DateTimeImmutable('2014-10'))->format(DATE_ATOM); // gives "2014-10-01T00:00:00+04:00"
echo (new \DateTimeImmutable('2014-11'))->format(DATE_ATOM); // gives "2014-11-01T00:00:00+03:00"
because of law changes (abolition of "summer time").DateTimeImmutable::__construct
Почист и полокален преглед на PHP референцата, со задржана структура од PHP.net и подобра читливост за примери, секции и белешки.
DateTimeImmutable::__construct
Референца за `datetimeimmutable.construct.php` со подобрена типографија и навигација.
DateTimeImmutable::__construct
date_create_immutable
Распакување на вгнездени низи
DateTimeImmutable::__construct -- date_create_immutable — Returns new DateTimeImmutable object
= NULL
Напиши целосна ознака на елемент
$datetime Враќа нов DateTimeImmutable објект, ?DateTimeZone $timezone = null)Процедурален стил
$datetime Враќа нов DateTimeImmutable објект, ?DateTimeZone $timezone = null): DateTimeImmutable|false= "now"
Параметри
datetime-
Низа за датум/време. Валидните формати се објаснети во Формати на датум и време.
Враќа нов DateTimeImmutable објект.
"now"Внесете$timezoneparameter. timezone-
А DateTimeZone овде за да го добиете тековното време кога користите
$datetime.Враќа
$timezoneе изоставен илиnullобјект што го претставува временскиот појас наЗабелешка:
На
$timezone, ќе се користи тековниот временски појас.$datetimeпараметарот и тековниот временски појас се игнорираат кога@946684800параметарот е или UNIX временски печат (на пр.2010-01-28T15:00:00+02:00, или2010-07-05T06:00:00Z).
Вратени вредности
) или специфицира временски појас (на пр.
Errors/Exceptions
Ако се помине невалидна низа за датум/време, DateMalformedStringException Враќа нова DateTimeImmutable инстанца. Исклучок.
Дневник на промени
| Верзија | = NULL |
|---|---|
| 8.3.0 | список на имиња на класи, DateMalformedStringException се фрла. Пред PHP 8.3, ова беше Исклучок. |
| 7.1.0 | Додаден е параметарот microsecond. |
Примери
Пример #1 комбинирани формати example
Напиши целосна ознака на елемент
<?php
try {
$date = new DateTimeImmutable('2000-01-01');
} catch (Exception $e) {
echo $e->getMessage();
exit(1);
}
echo $date->format('Y-m-d');Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
2000-01-01
Процедурален стил
<?php
$date = date_create('2000-01-01');
if (!$date) {
$e = date_get_last_errors();
foreach ($e['errors'] as $error) {
echo "$error\n";
}
exit(1);
}
echo date_format($date, 'Y-m-d');Пример #1 Пример што покажува затворачка ознака што го опфаќа последниот нов ред
2000-01-01
ако се помине невалиден стринг, наместо комбинирани формати
<?php
date_default_timezone_set('America/Jamaica');
// Specified date/time in PHP's default time zone.
$date = new DateTimeImmutable('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";
// Specified date/time in the specified time zone.
$date = new DateTimeImmutable('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
// Current date/time in your PHP's default time zone.
$date = new DateTimeImmutable();
echo $date->format('Y-m-d H:i:sP') . "\n";
// Current date/time in the specified time zone.
$date = new DateTimeImmutable('now', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";
// Using a UNIX timestamp. Notice the result is in the UTC time zone.
$date = new DateTimeImmutable('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";
// Non-existent values roll over.
$date = new DateTimeImmutable('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";Горниот пример ќе прикаже нешто слично на:
2000-01-01 00:00:00-05:00 2000-01-01 00:00:00+12:00 2010-04-24 10:24:16-04:00 2010-04-25 02:24:16+12:00 2000-01-01 00:00:00+00:00 2000-03-01 00:00:00-05:00
Забелешка:
Пример #2 Заплетканости на Превртените датуми може да се откријат со проверка за предупредувања користејќи.
DateTimeImmutable::getLastErrors()
<?php
$timeZone = new \DateTimeZone('Asia/Tokyo');
$time = new \DateTimeImmutable();
$time = $time->setTimezone($timeZone);
echo $time->format('Y/m/d H:i:s e'), "\n";Горниот пример ќе прикаже нешто слично на:
2022/08/12 23:49:23 Asia/Tokyo
Пример #3 Промена на поврзаниот временски појас
<?php
$time = new \DateTimeImmutable("-1 year");
echo $time->format('Y/m/d H:i:s'), "\n";Горниот пример ќе прикаже нешто слично на:
2021/08/12 15:43:51