Funciones de Fecha/Hora
PHP Manual

strtotime

(PHP 4, PHP 5)

strtotimeConvierte una descripción de fecha/hora textual en Inglés a una fecha Unix

Descripción

int strtotime ( string $time [, int $now ] )

Esta función espera que se proporcione una cadena que contenga un formato de fecha en Inglés US e intentará convertir ese formato a una fecha Unix (el número de segundos desde el 1 de Enero del 1970 00:00:00 UTC), relativa a la marca de tiempo dada en now, o la marca de tiempo actual si now no se proporciona.

Esta función usará la variable de entorno TZ (si está disponible) para calcular la marca de tiempo. A partir de PHP 5.1.0 hay maneras más sencillas de definir la zona horaria que se usa en todas las funciones de fecha/hora. Ese proceso se explica en la página de la función date_default_timezone_get().

Parámetros

time

Una cadena date/time. Los formatos válidos son explicados en Formatos de hora y fecha.

now

La marca de tiempo que se usa como base para el cálculo de las fechas relativas.

Valores devueltos

Devuelve una marca de tiempo si se tuvo éxito, FALSE si no. Antes de PHP 5.1.0, esta funcion devolvía -1 si fallaba.

Errores/Excepciones

Cada vez que se llame a la función date/time se generará un E_NOTICE si la zona horaria no es válida, y/o un mensaje E_STRICT o E_WARNING si se usa la configuración del sistema o la variable global TZ. Vea también date_default_timezone_set()

Historial de cambios

Versión Descripción
5.3.0 Antes de PHP 5.3.0, 24:00 no era un formato válido y strtotime() devolvía FALSE.
5.2.7 En PHP 5 anterior a 5.2.7, las peticiones de una incidencia de un día de la semana dado en un mes donde ese día de la semana era el primer día del mes, añadía incorrectamente una semana a la marca de tiempo devuelta. Esto ha sido corregido en 5.2.7 y versiones posteriores.
5.1.0 Ahora devuelve FALSE si falla, en vez de -1.
5.1.0

Ahora muestra E_STRICT y E_NOTICE cuando ocurren errores con zonas horarias.

5.0.2 En PHP 5 hasta 5.0.2, "now" y otros momentos relativos son computados erróneamente como la medianoche de hoy. Esto difiere de otras versiones donde es computado como el momento actual.
5.0.0 Los microsegundos comenzaron a estar permitidos, pero son ignorados.
4.4.0 En versiones de PHP antariores a 4.4.0, "next" es computado incorrectamente como +2. Una solución típica para esto es usar "+1".

Ejemplos

Example #1 Un ejemplo de strtotime()

<?php
echo strtotime("now"), "\n";
echo 
strtotime("10 September 2000"), "\n";
echo 
strtotime("+1 day"), "\n";
echo 
strtotime("+1 week"), "\n";
echo 
strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo 
strtotime("next Thursday"), "\n";
echo 
strtotime("last Monday"), "\n";
?>

Example #2 Comprobar si falla

<?php
$cadena 
'No Válida';

// antes de PHP 5.1.0 se debería de comparar con -1, en vez de con false
if (($timestamp strtotime($cadena)) === false) {
    echo 
"La cadena ($cadena) es falsa";
} else {
    echo 
"$cadena == " date('l dS \o\f F Y h:i:s A'$timestamp);
}
?>

Notas

Note:

Si el número del año se especifica en un formato de dos dígitos, los valores entre 00-69 son mapeados a 2000-2069 y 70-99 a 1970-1999. Vea las notas de abajo para las posibles diferencias en sistemas de 32 bit (las fechas posibles podrían terminar en 2038-01-19 03:14:07).

Note:

El rango válido de una marca de tiempo es típicamente desde Fri, 13 Dec 1901 20:45:54 UTC a Tue, 19 Jan 2038 03:14:07 UTC. (Estas son las fechas que se corresponden con los valores máximo y mínimo de un entero con signo de 32 bit.) Adicionalmente, no todas las plataformas soportan marcas de tiempo negativas, por lo tanto el rango de la fecha puede estar limitado a fechas no anteriores a la época Unix. Esto significa que, p.ej., las fechas anteriores al 1 de Enero del 1970 no funcionarán en Windows, en algunas distribuciones de Linux, y en otros pocos sistemas operativos. PHP 5.1.0 y versiones posteriores superan esta limitación.

Ver también


Funciones de Fecha/Hora
PHP Manual