strtotime
(PHP 4, PHP 5, PHP 7, PHP 8)
strtotime — Transforme un texte anglais en timestamp
Description
La fonction strtotime() essaye de lire une
date au format anglais fournie par le paramètre datetime,
et de la transformer en timestamp Unix (le nombre de secondes depuis
le 1er janvier 1970 à 00:00:00 UTC), relativement au timestamp
baseTimestamp, ou à la date courante si ce dernier
est omis. L'analyse de la chaîne de date est définie dans
les formats de date et d'heure
et comporte plusieurs considérations subtiles. Il est fortement recommandé
d'en examiner tous les détails.
Avertissement
L'horodatage Unix que cette fonction retourne ne contient pas d'information
à propos des fuseaux horaires. Pour faire des calculs avec les informations
de date/moment, il est recommandé d'utiliser
DateTimeImmutable qui est plus capable.
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é.
Il faut veiller à ne pas utiliser un décalage horaire différent pour
chaque paramètre à moins que ce soit ce dont il est nécessaire.
Se reporter à la fonction date_default_timezone_get()
afin de savoir comment définir un décalage horaire par défaut.
Liste de paramètres
datetime
-
Une chaîne date/heure. Les formats valides sont expliqués dans la documentation sur les
formats Date et Heure.
baseTimestamp
-
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.
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';
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:
Dans ce cas, la date "relative" signifie également que si un composant
particulier de l'horodatage n'est pas fourni, il sera extrait textuellement de
baseTimestamp. Autrement dit,
strtotime('February'), s'il est exécuté le 31 mai 2022, sera
interprété comme le 31 février 2022, qui débordera sur
un horodatage le 3 mars. (Dans une année bissextile,
ce serait le 2 mars.) L'utilisation de
strtotime('1 February') ou strtotime('first day of February')
éviterait ce problème.
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. Voir les notes ci-après
concernant les différences possibles entre 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é).
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:
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().