Transforme un texte anglais en timestamp

# strtotime

(PHP 4, PHP 5, PHP 7)

strtotime — Transforme un texte anglais en timestamp

### Description

strtotime ( string `$time` [, int `$now` = time() ] ) : int

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 `E_STRICT` et `E_NOTICE` lors d'erreurs de fuseaux horaires.
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