mktime
En esta página
mktime
Obtener la marca de tiempo Unix de una fecha
Descripción#
mktime(int $hour, [int $minute], [int $second], [int $month], [int $day], [int $year]): int
```php
Devuelve la marca de tiempo Unix correspondiente a los argumentos dados. Esta marca de tiempo es un entero que contiene el número de segundos entre la Época Unix (1 de Enero del 1970 00:00:00 GMT) y el instante especificado.
Cualquier parámetro opcional omitido o a `null` se establecerá al valor actual según la fecha y hora locales.
> [!WARNING]
> Tenga en cuenta que el orden de los argumentos es extraño: `month`, `day`, `year`, y no en el orden más natural de `year`, `month`, `day`.
Llamar a `mktime` sin argumentos no está soportado, y devolverá un `ArgumentCountError`. Puede usar `time` para obtener la marca de tiempo actual.
## Parámetros
`hour`
El número de la hora relativa al inicio del día determinado por `month`, `day` y `year`. Los valores negativos referencian la hora antes de la media noche del día en cuestión. Los valores mayores que 23 referencian la hora apropiada en el/los día/s siguiente/s.
`minute`
El número de los minutos relativos al inicio de `hour`. Los valores negativos referencian el minuto en la hora previa. Los valores mayores que 59 referencian el minuto apropiado en la/s hora/s siguiente/s.
`second`
El número de segundos relativos al inicio de `minute`. Los valores negativos referencian el segundo en el minuto previo. Los valores mayores que 59 referencian el segundo apropiado en el/los minuto/s siguiente/s.
`month`
El número del mes relativo al final del año previo. Los valores de 1 a 12 referencian los meses del calendario normal del año en cuestión. Los valores menores que 1 (incluyendo valores negativos) referencian los meses del año previo en orden inverso, por lo que 0 es Diciembre, -1 es Noviembre, etc. Los valores mayores que 12 referencian el mes apropiado en el/los año/s siguiente/s.
`day`
El número del día relativo al final del mes previo. Los valores del 1 al 28, 29, 30 o 31 (dependiendo del mes) referencian los días normales del mes relevante. Los valores menores que 1 (incluyendo valores negativos) referencian los días del mes previo por lo que 0 es el último día del mes previo, -1 es el día anterior a ese, etc. Los valores mayores que el número de días del mes relevante referencian el día apropiado en el/los mes/es siguiente/s.
`year`
El número del año, puede ser un valor de dos o cuatro dígitos, con valores entre 0-69 mapeados a 2000-2069 y 70-100 a 1970-2000. En sistemas donde time_t es un entero con signo de 32 bits, como es lo más normal hoy en día, el rango válido para `year` es entre 1901 y 2038. Sin embargo, antes de PHP 5.1.0 este rango estaba limitado desde 1970 a 2038 en algunos sistemas (p.ej. Windows).
## Valores devueltos
`mktime` devuelve la marca de tiempo Unix de los argumentos dados, o `false` si la marca de tiempo no cabe en un entero PHP.
## Historial de cambios
| Versión | Descripción |
|----|----|
| 8.0.0 | `hour` ya no es opcional. Si necesita una marca de tiempo unix, utilice `time`. |
| 8.0.0 | `minute`, `second`, `month`, `day` y `year` ahora pueden ser nulos. |
## Ejemplos
Ejemplo básico de `mktime`
Resultado del ejemplo anterior es similar a:
1 de julio de 2000 cae en Saturday
2006-04-05T01:02:03+00:00
Ejemplo `mktime`
`mktime` es útil para hacer cálculos con fechas y validaciones, ya que calculará automáticamente los valores correctos para entradas fuera de rango. Por ejemplo, cada una de las siguientes líneas devuelve la cadena: "Jan-01-1998".
Resultado del ejemplo anterior es similar a:
1998-01-01T00:00:00-05:00
1998-01-01T00:00:00-05:00
1998-01-01T00:00:00-05:00
1998-01-01T00:00:00-05:00
Usando mktime para buscar fechas relativas