strtotime
(PHP 4, PHP 5, PHP 7)
strtotime — Transforme un texte anglais en timestamp
Description
$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 |
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
- Les formats sur les dates
- DateTime::createFromFormat() - Analyse une heure au format texte selon le format spécifié.
- checkdate() - Valide une date grégorienne
- strptime() - Analyse une date générée par strftime
Version en cache
22/12/2024 08:26:17 Cette version de la page est en cache (à la date du 22/12/2024 08:26:17) afin d'accélérer le traitement. Vous pouvez activer le mode utilisateur dans le menu en haut pour afficher la dernère version de la page.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
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.