(PHP 4, PHP 5, PHP 7, PHP 8)
strtotime — Transforme un texte anglais en timestamp
Description
strtotime(string
$datetime, ?int
$baseTimestamp =
null): int|false
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
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, vous devriez 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é.
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
-
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.
Erreurs / Exceptions
Chaque appel à une fonction date/heure générera un diagnostic de type
E_WARNING si le fuseau horaire n'est pas valide.
Voir aussi date_default_timezone_set()
Historique
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. 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é).
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().
Voir aussi
- DateTimeImmutable
- DateTimeImmutable::createFromFormat() - Analyse une heure au format texte selon le format spécifié.
- Les formats sur les dates
- checkdate() - Valide une date grégorienne
- strptime() - Analyse une date générée par strftime