PHPCon Poland 2024



(PHP 5 >= 5.5.0, PHP 7, PHP 8)

DateTimeImmutable::createFromFormat -- date_create_immutable_from_formatDevuelve un nuevo objeto DateTimeImmutable formateado según el formato especificado


Estilo orientado a objetos

public static DateTimeImmutable::createFromFormat(string $format, string $time, DateTimeZone $timezone = ?): DateTimeImmutable

Estilo por procedimientos

Igual que DateTime::createFromFormat() excepto que trabaja con DateTimeImmutable.

add a note

User Contributed Notes 3 notes

Tessa at AuRiseCreative dot com
4 months ago
Since the description and examples don't exactly match for the timezone row, I want to clarify exactly which format each character outputs.

`e` outputs the timezone identifier, e.g. `America/New_York` or `Asia/Gaza`

`O` outputs the difference to UTC in hours, e.g. `-0500` or `+0200`

`P` outputs difference to UTC with a colon between hours and minutes, e.g. `-05:00` or `+02:00`

`T` outputs the timezone abbreviation, e.g. `EST` or `EET`
peter dot labos at gmail dot com
5 months ago
If you are not happy with wide range of conversions and repairs this method is making for you, or just want to check that date is really same as input:

$datetime = \DateTimeImmutable::createFromFormat('Y-m-d G:i:s', $userDateTimeInput);

if ($datetime && $datetime->format('Y-m-d G:i:s') === $userDateTimeInput) {
// $datetime is not false and we have a correct date in correct format from user
Andy Walker
1 year ago
To clarify, g/G are 12/24 hour time without a leading 0, and h/H are 12/24 hour time with a leading zero, as described here:
To Top