(PHP 4, PHP 5)
strtotime — Transforme un texte anglais en timestamp
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.
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.
Le timestamp utilisé pour calculer la valeur retournée.
Retourne un timestamp en cas de succès, FALSE sinon. Avant PHP 5.1.0, cette fonction retournait -1 en cas d'échec.
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()
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. |
Exemple #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";
?>
Exemple #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);
}
?>
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.
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.