strtotime
(PHP 4, PHP 5)
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 relative 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. |
4.4.0 | Avant la version 4.4.0 de PHP, "next" est mal calculé et est considéré comme +2. Une solution typique à ce problème est d'utiliser "+1". |
Exemples
Exemple #1 Exemple avec strtotime()
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é.) 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.
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é.
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() - Retourne un nouvel objet DateTime formaté
- checkdate() - Valide une date grégorienne
- strptime() - Analyse une date générée par strftime