"1999-04-02 04:34:40.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(10) "US/Pacific"
}
var_dump(new DateTimeImmutable("2020")); => object(DateTimeImmutable)#1 (3) {
["date"]=>
string(26) "2021-04-02 20:20:00.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(10) "US/Pacific"
}
то-есть тут есть логика?)
Я кстати сталкивался с таким.
Посмотри в доке какие форматы принимает, тут же надо более конкретно вроде бы.
1999 нет такого времени, а 2020 есть
$date = new DateTimeImmutable('2020-01-01'); echo $date->format('Y'); Result: 2020 Dump: string(4) "2020"
но фишка в том что приходит только год, нужно вручную получается дописывать -01-01
если тебе приходит только год, то зачем тебе вообще объект, мая не панимай
может прийти - Y or Y-m or Y-m-d
кошмар какой и это плохо, тот кто отправляет нехороший человек ) тогда тебе придется самому написать обработчик который будет определять что перед ним и добавлять недостающее
<?php $year = ["2020", "2021", "2022"]; foreach ($year as $arYears) { $date = new DateTimeImmutable($arYears.'-01-01'); echo $date->format('Y'). "\n"; } Result: 2020 2021 2022
может и работу за него всю делать будешь. а он только ЗП получать ))
похоже на костыль это -01-01 конечно)
https://www.php.net/manual/en/datetime.createfromformat
Обсуждают сегодня