Formats relatifs
Cette page décrit les différents formats relatifs que les analyseurs des fonctions strtotime(), DateTime et date_create() comprennent.
Description | Format |
---|---|
dayname | 'sunday' | 'monday' | 'tuesday' | 'wednesday' | 'thursday' | 'friday' | 'saturday' | 'sun' | 'mon' | 'tue' | 'wed' | 'thu' | 'fri' | 'sat' | 'sun' |
daytext | 'weekday' | 'weekdays' |
number | [+-]?[0-9]+ |
ordinal | 'first' | 'second' | 'third' | 'fourth' | 'fifth' | 'sixth' | 'seventh' | 'eighth' | 'ninth' | 'tenth' | 'eleventh' | 'twelfth' | 'next' | 'last' | 'previous' | 'this' |
reltext | 'next' | 'last' | 'previous' | 'this' |
space | [ \t]+ |
unit | (('sec' | 'second' | 'min' | 'minute' | 'hour' | 'day' | 'fortnight' | 'forthnight' | 'month' | 'year') 's'?) | 'weeks' | daytext |
Format | Description | Exemples |
---|---|---|
'yesterday' | Minuit d'hier | "yesterday 14:00" |
'midnight' | Le temps est affecté à 00:00:00 | |
'today' | Le temps est affecté à 00:00:00 | |
'now' | Maintenant | |
'noon' | Le temps est affecté à 12:00:00 | "yesterday noon" |
'tomorrow' | Minuit de demain | |
'back of' hour | 15 minutes avant l'heure précisée | "back of 7pm", "back of 15" |
'front of' hour | 15 minutes après l'heure spécifiée | "front of 5am", "front of 23" |
'first day' ' of'? | Affecte le jour du premier jour du mois courant. Il est plus intéréssant d'utiliser cette phrase suivie d'un nom de mois. | "first day of January 2008" |
'last day' ' of'? | Affecte le jour du dernier jour du mois courant. Il est plus intéréssant d'utiliser cette phrase suivie d'un nom de mois. | "last day of next month" |
ordinal space dayname space 'of' | Calcule le x-ème jour de semaine du mois en cours. | "first sat of July 2008" |
'last' space dayname space 'of' | Calcule le dernier jour de semaine du mois en cours. | "last sat of July 2008" |
number space? (unit | 'week') | Gère des temps relatifs dont la valeur est dénombrée. | "+5 weeks", "12 day", "-7 weekdays" |
number space unit | Gère des temps relatifs dont la valeur est dénombrée. | "fifth day", "second month" |
'ago' | Utilise dans le passé toute description de temps relatif ('il y a'). | "2 days ago", "8 days ago 14:00", "2 months 5 days ago", "2 months ago 5 days", "2 days ago ago" |
dayname | Se déplace vers le prochain jour indiqué. | "Monday" |
reltext space 'week' | Gère le format spécial "weekday + last/this/next week". | "Monday next week" |
Note:
Les expressions relatives sont toujours traitées après les expressions non relatives. Ceci fait en sorte que "+1 week july 2008" et "july 2008 +1 week" sont équivalents.
"yesterday", "midnight", "today", "noon" et "tomorrow" sont des exceptions à cette règle. Notez que "tomorrow 11:00" et "11:00 tomorrow" sont différents. Soit la date d'aujourd'hui à "July 23rd, 2008" , la première expression donne "2008-07-24 11:00" alors que la seconde donnera "2008-07-24 00:00". La raison est que ces cinq expressions influencent directement la date courante.
Note:
Notez les remarques qui suivent lorsque le jour de semaine courant est le même que le jour de semaine utilisé dans la chaine de date/time. Le jour de semaine courant aurait pu être recalculé par rapport aux parties non relatives de la chaine date/time.
- "dayname" n'avance pas vers un autre jour. (Exemple : "Wed July 23rd, 2008" signifie "2008-07-23").
- "number dayname" n'avance pas vers un autre jour. (Exemple : "1 wednesday july 23rd, 2008" signifie "2008-07-23").
- "number week dayname" ajoutera d'abord le nombre de semaines, mais n'avancera pas vers un autre jour. Dans ce cas "number week" et "dayname" sont deux blocs distincts. (Exemple : "+1 week wednesday july 23rd, 2008" signifie "2008-07-30").
- "ordinal dayname" avance vers un autre jour. (Exemple : "first wednesday july 23rd, 2008" signifie "2008-07-30").
- "number week ordinal dayname" ajoutera d'abord le nombre de semaines et ensuite avancera vers un autre jour. Dans ce cas, "number week" et "ordinal dayname" sont deux blocs distincts. (Exemple : "+1 week first wednesday july 23rd, 2008" signifie "2008-08-06").
- "ordinal dayname 'of' " n'avance pas vers un autre jour. (Exemple : "first wednesday of july 23rd, 2008" signifie "2008-07-02" car la phrase avec 'of' remet à zéro le jour du mois vers '1' et le '23' sera ignoré).
Notez aussi que le "of" dans "ordinal space dayname space 'of' " et "'last' space dayname espace 'of' " fait quelque chose de spécial.
- Il affecte le jour du mois à 1.
- "ordinal dayname 'of' " n'avance pas vers un autre jour. (Exemple : "first tuesday of july 2008" signifie "2008-07-01").
- "ordinal dayname " avance vers un autre jour. (Exemple : "first tuesday july 2008" signifie "2008-07-08", voyez aussi le point numéro 4 de la liste ci-dessus).
- "'last' dayname 'of' " prend le dernier dayname du mois courant. (Exemple : "last wed of july 2008" signifie "2008-07-30")
- "'last' dayname" prend le dernier dayname à partir du jour actuel. (Exemple : "last wed july 2008" signifie "2008-06-25"; "july 2008" affecte d'abord la date courante à "2008-07-01" et ensuite "last wed" remonte au dernier mercredi qui est le "2008-06-25").
Note:
Les valeurs relatives des mois calculés sont basées sur le nombre de jours des mois que l'on utilise. Par exemple, "+2 month 2011-11-30", donnera comme résultat la date "2012-01-30". Ceci est du au fait que le mois de novembre comporte 30 jours, et que le mois de décembre en comporte 31, soit un ajout total de 61 jours.