(PHP 5 >= 5.3.0, PHP 7, PHP 8)
date_parse_from_format — Recupera las informaciones de una fecha dada siguiendo un formato específico
Devuelve un array asociativo que contiene informaciones detalladas sobre una fecha/hora dada.
format
Documentación sobre el uso del format
,
por favor referirse a la documentación de
DateTimeImmutable::createFromFormat(). Las
mismas reglas se aplican.
datetime
Cadena que representa la fecha/hora.
Devuelve un array asociativo con informaciones detalladas sobre la fecha/hora dada.
El array devuelto tiene claves para year
,
month
, day
, hour
,
minute
, second
,
fraction
, y is_localtime
.
Si is_localtime
está presente, entonces
zone_type
indica el tipo de zona horaria. Para el tipo
1
(desplazamiento UTC) se añaden los campos
zone
y is_dst
. Para el tipo
2
(abreviatura) se añaden los campos
tz_abbr
y is_dst
. Para el tipo
3
(identificador de zona horaria) se añaden los campos
tz_abbr
y tz_id
.
El array incluye los campos warning_count
y
warnings
. El primero indica el número
de advertencias. Las claves del array warnings
indican la posición en el parámetro datetime
donde ocurrió la advertencia, con el valor de cadena que describe
la advertencia misma. Un ejemplo a continuación muestra tal advertencia.
El array incluye también los campos error_count
y
errors
. El primero indica el número
de errores. Las claves del array errors
indican
la posición en el parámetro datetime
donde ocurrió el error,
con el valor de cadena que describe la advertencia misma. Un ejemplo a continuación muestra tal advertencia.
El número de elementos de array en los arrays warnings
y
errors
puede ser inferior a warning_count
o error_count
si ocurrieron en la misma posición.
Esta función lanza una ValueError cuando el
datetime
contiene bytes NULL.
Versión | Descripción |
---|---|
8.0.21, 8.1.8, 8.2.0 |
Ahora lanza una ValueError cuando se pasan bytes NULL
en datetime , lo cual antes era ignorado silenciosamente.
|
7.2.0 |
El elemento zone del array devuelto representa segundos
en lugar de minutos ahora, y su signo es invertido. Por ejemplo
-120 ahora es igual a 7200 .
|
Ejemplo #1 Ejemplo con date_parse_from_format()
<?php
$date = "6.1.2009 13:00+01:00";
print_r(date_parse_from_format("j.n.Y H:iP", $date));
?>
El resultado del ejemplo sería:
Array ( [year] => 2009 [month] => 1 [day] => 6 [hour] => 13 [minute] => 0 [second] => 0 [fraction] => [warning_count] => 0 [warnings] => Array ( ) [error_count] => 0 [errors] => Array ( ) [is_localtime] => 1 [zone_type] => 1 [zone] => 3600 [is_dst] => )
Ejemplo #2 Ejemplo de date_parse_from_format() con advertencias
<?php
$date = "26 August 2022 22:30 pm";
$parsed = date_parse_from_format("j F Y G:i a", $date);
echo "Warnings count: ", $parsed['warning_count'], "\n";
foreach ($parsed['warnings'] as $position => $message) {
echo "\tOn position {$position}: {$message}\n";
}
?>
El resultado del ejemplo sería:
Warnings count: 1 On position 23: The parsed time was invalid
Ejemplo #3 Ejemplo de date_parse_from_format() con errores
<?php
$date = "26 August 2022 CEST";
$parsed = date_parse_from_format("j F Y H:i", $date);
echo "Errors count: ", $parsed['error_count'], "\n";
foreach ($parsed['errors'] as $position => $message) {
echo "\tOn position {$position}: {$message}\n";
}
?>
El resultado del ejemplo sería:
Errors count: 3 On position 15: A two digit hour could not be found On position 19: Data missing