PHP рдХреЛрд░реНрд╕ рдореЗрдВ рдмреИрдХрдПрдВрдб рдбреЗрд╡рд▓рдкрд░ рдХреЗ рдЫрд╛рддреНрд░реЛрдВ рдХреЗ рд▓рд┐рдП рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ , рдЙрдиреНрд╣реЛрдВрдиреЗ рдПрдХ рд▓реЛрдХрдкреНрд░рд┐рдп рдЯреВрд▓ рдХреЗ рд╕рд╛рдЗрдб рдЗрдлреЗрдХреНрдЯ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдПрдХ рджрд┐рд▓рдЪрд╕реНрдк рд▓реЗрдЦ рдХрд╛ рдЕрдиреБрд╡рд╛рдж рддреИрдпрд╛рд░ рдХрд┐рдпрд╛ред
PHP рдореЗрдВ рджрд┐рдирд╛рдВрдХ рдФрд░ рд╕рдордп рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдирд╛ рдХрднреА-рдХрднреА рдХрд╖реНрдЯрдкреНрд░рдж рд╣реЛрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рд╕реЗ рдХреЛрдб рдореЗрдВ рдЕрдкреНрд░рддреНрдпрд╛рд╢рд┐рдд рдХреАрдбрд╝реЗ рд╣реЛ рдЬрд╛рддреЗ рд╣реИрдВ:
$startedAt = new DateTime('2019-06-30 10:00:00'); $finishedAt = $startedAt->add(new DateInterval('PT3M')); var_dump($startedAt->format('Ymd H:i:s'));
$finishdate
рдФрд░
$finishdate
рджреЛрдиреЛрдВ
$finishdate
рддреАрди рдорд┐рдирдЯ рдХреЗ рд▓рд┐рдП рдЬрд▓реНрджреА рдореЗрдВ рд╣реИрдВ, рдХреНрдпреЛрдВрдХрд┐
add ()
,
sub()
рдпрд╛
modify()
рдЬреИрд╕реЗ рддрд░реАрдХреЗ рднреА рдбреЗрдЯрд╛рдЗрдо рдСрдмреНрдЬреЗрдХреНрдЯ рдХреЛ рд╕рдВрд╢реЛрдзрд┐рдд рдХрд░рддреЗ рд╣реИрдВ, рдЬрд┐рд╕рдХреЗ рд▓рд┐рдП рдЙрдиреНрд╣реЗрдВ рдЗрд╕реЗ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдмреБрд▓рд╛рдпрд╛ рдЬрд╛рддрд╛ рд╣реИред рдЙрдкрд░реЛрдХреНрдд рдЙрджрд╛рд╣рд░рдг, рдЬрд╝рд╛рд╣рд┐рд░ рд╣реИ, рдЕрд╡рд╛рдВрдЫрд┐рдд рд╡реНрдпрд╡рд╣рд╛рд░ рдХреЛ рджрд░реНрд╢рд╛рддрд╛ рд╣реИред
рд╣рдо рдЗрд╕ рддреНрд░реБрдЯрд┐ рдХреЛ рдЗрд╕рдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рд╕рдВрджрд░реНрднрд┐рдд рдСрдмреНрдЬреЗрдХреНрдЯ рдХреА рдкреНрд░рддрд┐рд▓рд┐рдкрд┐ рдмрдирд╛рдХрд░ рдареАрдХ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
$startedAt = new DateTime('2019-06-30 10:00:00'); $finishedAt = clone $startedAt; $finishedAt->add(new DateInterval('PT3M'));
рд╣рд░ рдмрд╛рд░ рдЬрдм рдореИрдВ PHP рдХреЛрдб рдореЗрдВ рдПрдХ рдХреНрд▓реЛрди рднрд░ рдореЗрдВ рдЖрддрд╛ рд╣реВрдВ, рддреЛ рдпрд╣ рдХрд┐рд╕реА рдХреЗ рдЕрд╕рдлрд▓ рдХреЛрдб рдЖрд░реНрдХрд┐рдЯреЗрдХреНрдЪрд░ рдХреА рд╣реИрдХ рдХреА рддрд░рд╣ рдмрджрдмреВ рдЖрддреА рд╣реИред рдЗрд╕ рдорд╛рдорд▓реЗ рдореЗрдВ, рд╣рдордиреЗ рдмрджрд▓рддреЗ рд╡реНрдпрд╡рд╣рд╛рд░ рд╕реЗ рдмрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдХреНрд▓реЛрдирд┐рдВрдЧ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛, рд▓реЗрдХрд┐рди рд╕рд╛рде рд╣реА, рдХреЛрдб рдмрджрд╕реВрд░рдд рд╣реЛ рдЧрдпрд╛ рдФрд░ рдмрд╣реБрдд рд╕рд╛рд░реЗ рдЕрдирд╛рд╡рд╢реНрдпрдХ рд╢реЛрд░ рдХрд╛ рдЕрдзрд┐рдЧреНрд░рд╣рдг рдХрд┐рдпрд╛ред
рд╡реИрдХрд▓реНрдкрд┐рдХ рд░реВрдк рд╕реЗ, рдореВрд▓
DateTime
рдЖрд╡реГрддреНрддрд┐ рдХреЛ
DateTimeImmutable
рдкрд░рд┐рд╡рд░реНрддрд┐рдд рдХрд░рдХреЗ рд╕рдорд╕реНрдпрд╛ рдХрд╛ рд╕рдорд╛рдзрд╛рди рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ:
$startedAt = new DateTime('2019-06-30 10:00:00'); $finishedAt = DateTimeImmutable::createFromMutable($startedAt)->add(new DateInterval('PT3M'));
рдмрд╣реБрдд рд╢реБрд░реБрдЖрдд рд╕реЗ
DateTimeImmutable
рдЙрдкрдпреЛрдЧ рдХреНрдпреЛрдВ рдирд╣реАрдВ рдХрд░рддреЗ?
DateTimeImmutable рдХрд╛ рдмреЗрдЬрд╛ рдЙрдкрдпреЛрдЧ
рджрд┐рдирд╛рдВрдХ / рд╕рдордп рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдкрд╛рд╕ рдХрд░рддреЗ рд╕рдордп рдЕрдирдкреЗрдХреНрд╖рд┐рдд рдкрд░рд┐рд╡рд░реНрддрдиреЛрдВ рдХреЛ рд░реЛрдХрдиреЗ рдХреЗ рд▓рд┐рдП рд╕реБрд░рдХреНрд╖рд╛ рд╡рд┐рдзрд┐рдпреЛрдВ рдХреЛ рдореИрдиреНрдпреБрдЕрд▓ рд░реВрдк рд╕реЗ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп,
DateTimeImmutable
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рдЬреЛ рддрд░реАрдХреЛрдВ рдХреЛ рдХреВрдЯрдмрджреНрдз рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рд╕реЗ рдЖрдкрдХрд╛ рдХреЛрдб рдЕрдзрд┐рдХ рд╡рд┐рд╢реНрд╡рд╕рдиреАрдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИред
$startedAt = new DateTimeImmutable('2019-06-30 10:00:00'); $finishedAt = $startedAt->add(new DateInterval('PT3M')); var_dump($startedAt->format('Ymd H:i:s'));
рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рдХрд┐рд╕реА рддрд┐рдерд┐ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЛ рдПрдХ рдореВрд▓реНрдп рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ, рд╣рдо рддрд╛рд░реАрдЦреЛрдВ рдХреА рдЙрдирдХреЗ рдореВрд▓реНрдпреЛрдВ рд╕реЗ рддреБрд▓рдирд╛ рдХрд░рддреЗ рд╣реИрдВ, рдФрд░ рдЬрдм рд╣рдо рддрд╛рд░реАрдЦ рдмрджрд▓рддреЗ рд╣реИрдВ, рддреЛ рдпрд╣ рдПрдХ рдЕрд▓рдЧ рддрд╛рд░реАрдЦ рдмрди рдЬрд╛рддреА рд╣реИред рдпрд╣ рд╕рдм
рдореВрд▓реНрдп рд╡рд╕реНрддреБ рдХреА рдЕрд╡рдзрд╛рд░рдгрд╛ рдХреЗ рд╕рд╛рде рдкреВрд░реА рддрд░рд╣ рд╕реЗ рд╕рдВрдмрдВрдзрд┐рдд рд╣реИ, рдФрд░ рдореВрд▓реНрдп рд╡рд╕реНрддреБрдУрдВ рдХреА рдПрдХ рдорд╣рддреНрд╡рдкреВрд░реНрдг рд╡рд┐рд╢реЗрд╖рддрд╛ рдпрд╣ рд╣реИ рдХрд┐ рд╡реЗ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╣реИрдВред
рд╡рд┐рд╕реНрддреГрдд рдХреЛрдбрд┐рдВрдЧ рд╢реИрд▓реА
рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдЖрдкрдХреЛ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ
DateTimeImmutable
рд╡рд╕реНрддреБ рдХреЛ рд╣рд░ рдмрд╛рд░ рдЖрдкрдХреЗ рд╕рд╛рде рдмрд╛рддрдЪреАрдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдмрд╛рдзреНрдп рдХрд░рддреА рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдХреЙрдкреА рдХреЛ рд╡рд╛рдкрд╕ рдХрд░рдиреЗ рдХреЗ рдмрдЬрд╛рдп рдЗрд╕рдХреЗ рдореВрд▓реНрдп рдХреЛ рдХрднреА рдирд╣реАрдВ рдмрджрд▓рддрд╛ рд╣реИред рдХрдИ рд╡рд░реНрд╖реЛрдВ рдХреЗ рдмрд╛рдж DateTime рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдФрд░ рдЪреВрдБрдХрд┐ рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрди рдХрдИ рдЕрдирд┐рд╡рд╛рд░реНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╣реИ, рдЗрд╕рд▓рд┐рдП рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдЖрджрдд рд╕реЗ рдЫреБрдЯрдХрд╛рд░рд╛ рдкрд╛рдирд╛ рдХрдард┐рди рд╣реИ рдФрд░ рд░реАрдореЗрдХрд┐рдВрдЧ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрдиреЗ рд╡рд╛рд▓реЗ рдХреЛрдб рд▓рд┐рдЦрдиреЗ рдХреА рдирдИ рд╢реИрд▓реА рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИ:
$this->expiresAt = $this->expiresAt->modify('+1 week');
рд╕рд╛рдВрдЦреНрдпрд┐рдХреАрдп рд╡рд┐рд╢реНрд▓реЗрд╖рдг рдЙрдкрдХрд░рдг, рдЬреИрд╕реЗ рдХрд┐
PHPStan рдФрд░
рдЗрд╕рдХреЗ рдПрдХ рдПрдХреНрд╕рдЯреЗрдВрд╢рди , рд╣рдореЗрдВ рдЪреЗрддрд╛рд╡рдиреА рджреЗ рд╕рдХрддреЗ рд╣реИрдВ рдпрджрд┐ рд╣рдо рдЕрд╕рд╛рдЗрдирдореЗрдВрдЯ рдХреЛ рдЫреЛрдбрд╝ рджреЗрддреЗ рд╣реИрдВ рдФрд░
DateTimeImmutable
рдЧрд▓рдд рддрд░реАрдХреЗ рд╕реЗ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред
рд╣рд╛рд▓рд╛рдВрдХрд┐, рдкрд░рд┐рд╡рд░реНрддрдирд╢реАрд▓рддрд╛ рдХреЗ рдкреНрд░рддрд┐ рдЗрд╕ рддрд░рд╣ рдХреЗ рд╕рдВрдЬреНрдЮрд╛рдирд╛рддреНрдордХ рдкреВрд░реНрд╡рд╛рдЧреНрд░рд╣ рдХреЛ рджрдмрд╛ рджрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрдм рд╣рдо рдЖрджрд┐рдо рдХреЗ рдореВрд▓реНрдпреЛрдВ рдкрд░ рдЕрдВрдХрдЧрдгрд┐рддреАрдп рд╕рдВрдЪрд╛рд▓рди рдХрд░рддреЗ рд╣реИрдВ, рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
$a + 3;
ред рдЕрдкрдиреЗ рдЖрдк рдореЗрдВ, рдпрд╣ рдПрдХ рдЕрд░реНрдерд╣реАрди рдХрдерди рдХреЗ рд░реВрдк рдореЗрдВ рдорд╛рдирд╛ рдЬрд╛рддрд╛ рд╣реИ рдЬрд┐рд╕рдореЗрдВ рд╕реНрдкрд╖реНрдЯ рд░реВрдк рд╕реЗ рдПрдХ рдЖрд╢реНрд╡рд╛рд╕рди рдХреА рдХрдореА рд╣реЛрддреА рд╣реИ:
$a = $a + 3;
рдпрд╛
$A += 3;
ред рдпрд╣ рдореВрд▓реНрдп рд╡рд╕реНрддреБрдУрдВ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдЗрд╕ рддрд░рд╣ рд╕реЗ рдХреБрдЫ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫрд╛ рд╣реЛрдЧрд╛, рд╣реИ рдирд╛?
рдХреБрдЫ рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рднрд╛рд╖рд╛рдУрдВ рдореЗрдВ
рд╕рдВрдЪрд╛рд▓рдХ рд╢рд░реНрдХрд░рд╛ рд╣реЛрддреА рд╣реИ рдЬрд┐рд╕реЗ
рдСрдкрд░реЗрдЯрд░ рдУрд╡рд░рд▓реЛрдбрд┐рдВрдЧ рдХрд╣рд╛ рдЬрд╛рддрд╛ рд╣реИ, рдЬреЛ рдЖрдкрдХреЛ рдЙрдкрдпреЛрдЧрдХрд░реНрддрд╛-рдкрд░рд┐рднрд╛рд╖рд┐рдд рдкреНрд░рдХрд╛рд░реЛрдВ рдФрд░ рд╡рд░реНрдЧреЛрдВ рдореЗрдВ рдСрдкрд░реЗрдЯрд░реЛрдВ рдХреЛ рд▓рд╛рдЧреВ рдХрд░рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рддрд╛рдХрд┐ рд╡реЗ рдЖрджрд┐рдо рдбреЗрдЯрд╛ рдкреНрд░рдХрд╛рд░реЛрдВ рдХреА рддрд░рд╣ рд╡реНрдпрд╡рд╣рд╛рд░ рдХрд░реЗрдВред рдЕрдЧрд░ рдкреАрдПрдЪрдкреА рдиреЗ рдЗрд╕ рдЯреНрд░рд┐рдХ рдХреЛ рдХрд┐рд╕реА рдЕрдиреНрдп рдкреНрд░реЛрдЧреНрд░рд╛рдорд┐рдВрдЧ рд▓реИрдВрдЧреНрд╡реЗрдЬ рд╕реЗ рдЙрдзрд╛рд░ рд▓рд┐рдпрд╛ рддреЛ рдореБрдЭреЗ рдХреЛрдИ рдЖрдкрддреНрддрд┐ рдирд╣реАрдВ рд╣реЛрдЧреА, рдФрд░ рд╣рдо рдЗрд╕ рдкреНрд░рдХрд╛рд░ рд▓рд┐рдЦ рд╕рдХрддреЗ рд╣реИрдВ:
$this->expiresAt += '1 week';
рдПрдХ рдмрд╛рд░ рдХреА рдЧрдгрдирд╛
рдХреБрдЫ рд▓реЛрдЧреЛрдВ рдХрд╛ рддрд░реНрдХ рд╣реИ рдХрд┐ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ,
DateTime
рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рдмреЗрд╣рддрд░ рд╣реИ, рдХреНрдпреЛрдВрдХрд┐ рдЧрдгрдирд╛ рдПрдХ рд╣реА рдирд┐рд╖реНрдкрд╛рджрди рдХреНрд╖реЗрддреНрд░ рдХреЗ рднреАрддрд░ рдХреА рдЬрд╛рддреА рд╣реИред рдпрд╣ рд╕реНрд╡реАрдХрд╛рд░реНрдп рд╣реИ, рд╣рд╛рд▓рд╛рдВрдХрд┐, рдпрджрд┐ рдЖрдкрдХреЛ рд╕реИрдХрдбрд╝реЛрдВ рдСрдкрд░реЗрд╢рди рдХрд░рдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдирд╣реАрдВ рд╣реИ, рдФрд░ рдЖрдкрдХреЛ рдпрд╛рдж рд╣реИ рдХрд┐ рдкреБрд░рд╛рдиреЗ
DateTimeImmutable
рдСрдмреНрдЬреЗрдХреНрдЯреНрд╕ рдХреЗ рд▓рд┐рдВрдХ рдХрдЪрд░рд╛ рдХрд▓реЗрдХреНрдЯрд░ рджреНрд╡рд╛рд░рд╛ рдПрдХрддреНрд░ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ, рддреЛ рдЬреНрдпрд╛рджрд╛рддрд░ рдорд╛рдорд▓реЛрдВ рдореЗрдВ, рд╡реНрдпрд╡рд╣рд╛рд░ рдореЗрдВ, рдореЗрдореЛрд░реА рдХреА рдЦрдкрдд рдПрдХ рд╕рдорд╕реНрдпрд╛ рдирд╣реАрдВ рд╣реЛрдЧреАред
рджрд┐рдирд╛рдВрдХ / рд╕рдордп рдкреБрд╕реНрддрдХрд╛рд▓рдп
рдХрд╛рд░реНрдмрди рдПрдХ рдЕрддреНрдпрдВрдд рд▓реЛрдХрдкреНрд░рд┐рдп рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдЬреЛ рдкреАрдПрдЪрдкреА рдореЗрдВ рджрд┐рдирд╛рдВрдХ / рд╕рдордп рдПрдкреАрдЖрдИ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдПрдХ рд╕рдореГрджреНрдз рд╕реБрд╡рд┐рдзрд╛ рд╕реЗрдЯ рдХреЛ рдЬреЛрдбрд╝рддрд╛ рд╣реИред рдЕрдзрд┐рдХ рд╕рдЯреАрдХ рд░реВрдк рд╕реЗ, рдпрд╣
DateTime
рдЙрддреНрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рд╡рд░реНрдЧ рдХреЗ рдПрдкреАрдЖрдИ рдХрд╛ рд╡рд┐рд╕реНрддрд╛рд░ рдХрд░рддрд╛ рд╣реИ, рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд╡рд┐рд╖рдп рдХреЗ рд╡рд┐рдкрд░реАрдд рд╣реИред
рдЗрд╕рд▓рд┐рдП, рдпрджрд┐ рдЖрдк рдХрд╛рд░реНрдмрди рдХреЗ рд╕рд╛рде рдХрд╛рдо рдХрд░рдиреЗ рдХрд╛ рдЖрдирдВрдж рд▓реЗрддреЗ рд╣реИрдВ, рд▓реЗрдХрд┐рди рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдореЗрд░рд╛ рд╕реБрдЭрд╛рд╡ рд╣реИ рдХрд┐ рдЖрдк рдЦреБрдж рдХреЛ
рдХреНрд░реЛрдиреЛрд╕ рд╕реЗ рдкрд░рд┐рдЪрд┐рдд
рдХрд░рд╛рдПрдВ ред рдпрд╣ рдПрдХ рд╕реНрдЯреИрдВрдбрдЕрд▓реЛрди рд▓рд╛рдЗрдмреНрд░реЗрд░реА рд╣реИ, рдЬреЛ рдореВрд▓ рд░реВрдк рд╕реЗ рдХрд╛рд░реНрдмрди рдкрд░ рдЖрдзрд╛рд░рд┐рдд рдереА, рдЬреЛ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рдбрд┐рдлрд╝реЙрд▓реНрдЯ рддрд┐рдерд┐ / рд╕рдордп рд╡рд╕реНрддреБрдУрдВ рдХреЛ рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдкрд░ рд╡рд┐рд╢реЗрд╖ рдзреНрдпрд╛рди рджреЗрддреА рд╣реИ, рд▓реЗрдХрд┐рди рдЗрд╕рдореЗрдВ рдЖрд╡рд╢реНрдпрдХрддрд╛ рдХреЗ рдорд╛рдорд▓реЗ рдореЗрдВ рдкрд░рд╕реНрдкрд░ рд╡рд┐рдХрд▓реНрдк рднреА рд╢рд╛рдорд┐рд▓ рд╣реИрдВред
рд╕рдВрдкрд╛рджрд┐рдд (07/05/2019): рдпрд╣ рдкрддрд╛ рдЪрд▓рд╛ рдХрд┐ рдХрд╛рд░реНрдмрди рдореЗрдВ рдПрдХ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдп рддрд╛рд░реАрдЦ / рд╕рдордп рд╡рд┐рдХрд▓реНрдк рд╣реИ, рдЬреЛ рдПрдХ рдмрдбрд╝рд╛ рдкреНрд▓рд╕ рд╣реИред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдХреНрд░реЛрдиреЛрд╕ рдХреЛ рдкрд╕рдВрдж рдХрд░рдиреЗ рдХрд╛ рдХрд╛рд░рдг рдпрд╣ рд╣реИ рдХрд┐ рдХрд╛рд░реНрдмрди рдХреЗ рд╡рд┐рдкрд░реАрдд, рдпрд╣ рдбрд┐рдлрд╝реЙрд▓реНрдЯ рдЕрдкрд░рд┐рд╡рд░реНрддрдиреАрдпрддрд╛ рдХреЛ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддрд╛ рд╣реИ рдФрд░ рдмрдврд╝рд╛рд╡рд╛ рджреЗрддрд╛ рд╣реИ, рджреЛрдиреЛрдВ рдХреЛрдб рдФрд░ рдкреНрд░рд▓реЗрдЦрди рдореЗрдВ, рдФрд░ рдпреЗ рдЗрд╕ рд▓реЗрдЦ рдХреЗ рд╕рдВрджрд░реНрдн рдореЗрдВ рдирд┐рд░реНрдгрд╛рдпрдХ рдХрд╛рд░рдХ рд╣реИрдВред
рдЕрдВрддрд┐рдо рд╡рд┐рдЪрд╛рд░
DateTimeImmutable
рдХреЛ рд╕рдмрд╕реЗ рдкрд╣рд▓реЗ рдкреНрд░рд╛рдЪреАрди PHP 5.5 рдореЗрдВ рд╡рд╛рдкрд╕ рд▓рд╛рдпрд╛ рдЧрдпрд╛ рдерд╛, рд▓реЗрдХрд┐рди рдореЗрд░реЗ рдЖрд╢реНрдЪрд░реНрдп рдХреА рдмрд╛рдд рд╣реИ, рдХрдИ рдбреЗрд╡рд▓рдкрд░реНрд╕ рдЕрднреА рдЗрд╕рдХреА рдЦреЛрдЬ рдХрд░ рд░рд╣реЗ рд╣реИрдВред рдЬрдм рднреА рд╕рдВрднрд╡ рд╣реЛ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд░реВрдк рд╕реЗ
DateTimeImmutable
рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рд▓реЗрдХрд┐рди рдХреБрдЫ рдЯреНрд░реЗрдб-рдСрдл рдХрд╛ рдзреНрдпрд╛рди рд░рдЦреЗрдВ, рдЬрд┐рдирдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рдореИрдВрдиреЗ рдмрд╛рдд рдХреА рдереА рдХрд┐ рдореБрдЭреЗ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдпрд╣ рдЖрджрдд рдХрд╛ рдорд╛рдорд▓рд╛ рд╣реИ рдФрд░ рдорд╛рдирд╕рд┐рдХрддрд╛ рдореЗрдВ рдмрджрд▓рд╛рд╡ рд╣реИред
рд╡рд╣ рд╕рдм рд╣реИред рдкрд░рдВрдкрд░рд╛ рд╕реЗ, рд╣рдо рдЖрдкрдХреА рдЯрд┐рдкреНрдкрдгрд┐рдпреЛрдВ, рдорд┐рддреНрд░реЛрдВ рдХреА рдкреНрд░рддреАрдХреНрд╖рд╛ рдХрд░ рд░рд╣реЗ рд╣реИрдВред