# strtotime

(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

Version | Description
--- | ---
8.0.0 | `baseTimestamp` est désormais nullable.

### 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