date_parse
En esta página
date_parse
Retorna un array asociativo con información detallada sobre una fecha/hora dada
Descripción#
date_parse(string $datetime): array
```php
`date_parse` analiza la cadena `datetime` dada según las mismas reglas `strtotime` y `DateTimeImmutable::__construct`. En lugar de devolver un timestamp Unix (con `strtotime`) o un objeto `DateTimeImmutable` (con `DateTimeImmutable::__construct`), devuelve un array asociativo con la información que podría detectar en la cadena `datetime` dada.
Si no se puede encontrar información sobre un cierto grupo de elementos, estos elementos del array serán definidos como `false` o estarán ausentes. Si es necesario para construir un timestamp o un objeto `DateTimeImmutable` a partir de la misma cadena `datetime`, varios campos pueden ser definidos con un valor no-`false`. Ver los ejemplos a continuación para los casos en que esto ocurre.
## Parámetros
`datetime`
Fecha/hora en un formato aceptado por `DateTimeImmutable::__construct`.
## Valores devueltos
Retorna un `array` que contiene información sobre la fecha/hora analizada.
El array retornado 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) los campos `zone` y `is_dst` son añadidos. Para el tipo `2` (abreviatura) los campos `tz_abbr` y `is_dst` son añadidos. Para el tipo `3` (identificador de zona horaria) los campos `tz_abbr` y `tz_id` son añadidos.
Si elementos de tiempo relativo están presentes en la cadena `datetime`, como `+3 days`, el array retornado incluye un array anidado con la clave `relative`. Este array contiene entonces las claves `year`, `month`, `day`, `hour`, `minute`, `second`, y si es necesario `weekday`, y `weekdays`, dependiendo de la cadena pasada.
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 describiendo 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 describiendo la advertencia misma. Un ejemplo a continuación muestra tal advertencia.
> [!WARNING]
> 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.
## Errores/Excepciones
En el caso de que la función retorne un error, el elemento `"errors"` contendrá los mensajes de error.
## Historial de cambios
| Versión | Descripción |
|----|----|
| 7.2.0 | El elemento `zone` del array retornado ahora representa segundos en lugar de minutos, y su signo es invertido. Por ejemplo, `-120` ahora es `7200`. |
## Ejemplos
`date_parse` con una cadena `datetime` completa
El ejemplo anterior mostrará:
array(12) {
["year"]=>
int(2006)
["month"]=>
int(12)
["day"]=>
int(12)
["hour"]=>
int(10)
["minute"]=>
int(0)
["second"]=>
int(0)
["fraction"]=>
float(0.5)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(false)
}
Los elementos de zona horaria solo aparecen si están incluidos en la cadena `datetime` dada. En este caso, siempre habrá un elemento `zone_type` y algunos otros dependiendo de su valor.
`date_parse` con información abreviada sobre la zona horaria
El ejemplo anterior mostrará:
array(16) {
["year"]=>
int(2022)
["month"]=>
int(6)
["day"]=>
int(2)
["hour"]=>
int(10)
["minute"]=>
int(28)
["second"]=>
int(17)
["fraction"]=>
float(0)
["warning_count"]=>
int(0)
["warnings"]=>
array(0) {
}
["error_count"]=>
int(0)
["errors"]=>
array(0) {
}
["is_localtime"]=>
bool(true)
["zone_type"]=>
int(2)
["zone"]=>
int(0)
["is_dst"]=>
bool(true)
["tz_abbr"]=>
string(3) "BST"
}
`date_parse` con información abreviada sobre la zona horaria