Forum und email

strtotime

(PHP 4, PHP 5)

strtotime — Transforme un texte anglais en timestamp

Description

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

strtotime() essaye de lire une date au format anglais US dans la chaîne time , et de la transformer en timestamp Unix (le nombre de secondes depuis le 1er Janvier 1970 à 00:00:00 GMT), relativement au timestamp now , ou à la date courante si ce dernier est omis.

Cette fonction devrait utiliser la variable d'environnement TZ (si disponible) pour calculer le timestamp. Depuis PHP 5.1.0, il y a une façon simple de définir un fuseau horaire à utiliser avec toutes les fonctions de date/heure. Le processus est expliqué dans la page du manuel de la fonction date_default_timezone_get().

Note: Si l'année est spécifiée sur deux chiffres, les valeurs entre 00 et 69 correspondent aux années entre 2000 et 2069 et les valeurs entre 70 et 99 correspondent aux années entre 1970 et 1999.

Liste de paramètres

time

La chaîne à analyser, en accord avec la » syntaxe des dates GNU. Avant PHP 5.0.0, les microsecondes ne sont pas autorisées dans ce paramètre, depuis PHP 5.0.0, elles sont autorisées mais ignorées.

now

Le timestamp utilisé pour calculer la valeur retournée.

Valeurs de retour

Retourne un timestamp en cas de succès, FALSE sinon. Avant PHP 5.1.0, cette fonction retournait -1 en cas d'échec.

Erreurs / Exceptions

Chaque appel à une fonction date/heure générera un message de type E_NOTICE si le fuseau horaire n'est pas valide., et/ou un message de type E_STRICT si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

Historique

Version Description
5.1.0 La fonction retourne maintenant FALSE en cas d'échec, au lieu de -1.
5.1.0

Émet un message de type E_STRICT et E_NOTICE lors d'erreurs de fuseaux horaires.

Exemples

Example#1 Exemple avec 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 Vérification d'erreur

<?php
$str 
'Pas bon';

// Avant PHP 5.1.0, vous devez comparer avec  -1, au lieu de false
if (($timestamp strtotime($str)) === false) {
   echo 
"La chaîne ($str) est boguée";
} else {
   echo 
"$str == " date('l dS \o\f F Y h:i:s A'$timestamp);
}
?>

Notes

Warning

En PHP 5 supérieur à 5.0.2, "now" et les autres valeurs de temps relatives sont incorrectement calculées depuis minuit du jour courant. Ce comportement diffère des versions antérieures où elles étaient correctement calculées depuis l'heure courante.

Warning

Dans les versions antérieures à PHP 4.4.0, "next" est calculé de façon incorrecte comme +2. Une solution consiste à utiliser "+1".

Note: L'intervalle de validité d'un timestamp va du Vendredi 13 Décembre 1901 20:45:54 GMT au Mardi 19 Janvier 2038 03:14:07 GMT. (Cela correspond aux dates maximales et minimales pour un entier de 32 bits signé.) Toutes les plates-formes ne supportent pas les timestamp négatifs et dans ce cas, l'intervalle de date sera limitée à environs l'époque Unix. Cela signifie que les dates antérieures au 1 Janvier 1970 ne fonctionneront pas sous Windows, quelques distributions Linux et quelques autres systèmes. PHP 5.1.0 ainsi que les versions plus récentes outrepassent cette limitation.

Voir aussi