Rechercher une fonction PHP

strtotime

(PHP 4, PHP 5, PHP 7)

strtotimeTransforme un texte anglais en timestamp

Description

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

La fonction strtotime() essaye de lire une date au format anglais fournie par le paramètre time, et de la transformer en timestamp Unix (le nombre de secondes depuis le 1er Janvier 1970 à 00:00:00 UTC), relativement au timestamp now, ou à la date courante si ce dernier est omis.

Chaque paramètre de la fonction utilise le décalage horaire par défaut à moins qu'un décalage horaire y soit explicitement paramétré. Soyez vigilant à ne pas utiliser un décalage horaire différent pour chaque paramètre à moins que ce soit ce dont vous avez besoin. Reportez-vous à la fonction date_default_timezone_get() afin de savoir comment définir un décalage horaire par défaut.

  

Liste de paramètres

time

Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les formats Date et Heure.

now

Le timestamp, représentant la date courante, utilisé pour le calcul relatif des dates.

  

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 ou E_WARNING si vous utilisez la configuration du système ou la variable d'environnement TZ. Voir aussi date_default_timezone_set()

  

Historique

Version Description
5.3.0 Avant PHP 5.3.0, les formats de temps relatifs fournis à l'argument time de la fonction strtotime() comme this week, previous week, last week, et next week étaient interprétés comme étant une période relative de 7 jours sur la date/heure courante, plutôt qu'une période d'une semaine allant du Monday au Sunday.
5.3.0 Avant PHP 5.3.0, 24:00 n'était pas un format valide et la fonction strtotime() retournait FALSE.
5.2.7 En PHP 5, avant la version 5.2.7, demander le jour de la semaine correspondant au premier jour du mois ajoute de manière incorrecte une semaine au timestamp retourné. Ceci a été corrigé dans PHP 5.2.7 et supérieur.
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.

5.0.2 En PHP 5 jusqu'à la version 5.0.2, "now" et les autres temps relatifs sont mal calculés depuis minuit d'aujourd'hui. Dans les autres versions, le calcul est correct.
5.0.0 Les microsecondes sont acceptées mais ignorées.

  

Exemples

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);
}
?>

  

Notes

Note:

Si le chiffre des années est précisé sur deux chiffres, les valeurs entre 00-69 correspondent à 2000-2069 et 70-99 à 1970-1999. Voyez les notes après concernant les différences possibles entres systèmes 32-bit (des dates peuvent échouer après le 19/01/2038 à 03:14:07).

Note:

L'intervalle de validité d'un timestamp va du Vendredi 13 Décembre 1901 20:45:54 UTC au Mardi 19 Janvier 2038 03:14:07 UTC. (Cela correspond aux dates maximales et minimales pour un entier de 32 bits signé).

Avant PHP 5.1.0, toutes les plates-formes ne supportaient pas les timestamp négatifs et dans ce cas, l'intervalle de date était limitée à environs l'époque Unix. Cela signifiait que les dates antérieures au 1 Janvier 1970 ne fonctionnait pas sous Windows, quelques distributions Linux et quelques autres systèmes.

Pour les versions 64-bit de PHP, l'intervalle valide d'un timestamp est réellement infini, sachant que 64 bits peut représenter approximativement 293 milliards d'années dans n'importe quelle direction.

Note:

Les dates aux formats m/d/y ou d-m-y sont analysées en regardant le séparateur entre les différentes parties : si le séparateur est un slash (/), alors le format américain m/d/y est supposé ; si le séparateur est un tiret (-) ou un point (.), alors le format Européen d-m-y sera supposé. Si toutefois l'année est fournie sur deux digits, et que le séparateur est un tiret (-), la date sera analysée comme étant au format y-m-d.

Pour éviter des ambiguïtés éventuelles, le mieux est d'utiliser le format ISO 8601 (YYYY-MM-DD) ou encore d'utiliser la méthode DateTime::createFromFormat() lorsque c'est possible.

Note:

L'utilisation de cette fonction sur des opérations mathématiques n'est pas conseillée. Il vaut mieux utiliser dans ce cas DateTime::add() et DateTime::sub() en PHP 5.3 et suivants, ou DateTime::modify() en PHP 5.2.

  

Voir aussi

Rechercher une fonction PHP

Document créé le 30/01/2003, dernière modification le 26/10/2018
Source du document imprimé : https://www.gaudry.be/php-rf-function.strtotime.html

L'infobrol est un site personnel dont le contenu n'engage que moi. Le texte est mis à disposition sous licence CreativeCommons(BY-NC-SA). Plus d'info sur les conditions d'utilisation et sur l'auteur.

Références

  1. Consulter le document html Langue du document :fr Manuel PHP : http://php.net

Ces références et liens indiquent des documents consultés lors de la rédaction de cette page, ou qui peuvent apporter un complément d'information, mais les auteurs de ces sources ne peuvent être tenus responsables du contenu de cette page.
L'auteur de ce site est seul responsable de la manière dont sont présentés ici les différents concepts, et des libertés qui sont prises avec les ouvrages de référence. N'oubliez pas que vous devez croiser les informations de sources multiples afin de diminuer les risques d'erreurs.

Table des matières Haut