Fonctions de date date-functions
Les fonctions de date permettent de manipuler et d’utiliser des valeurs de date et d’heure dans vos expressions de parcours. Ces fonctions sont essentielles pour les conditions temporelles, la planification et les calculs temporels de vos parcours clientèle.
Utilisez les fonctions de date lorsque vous devez :
- Obtenir l’heure ou la date actuelle avec une gestion spécifique des fuseaux horaires (now, nowWithDelta, currentTimeInMillis)
- Calculer la différence entre deux dates ou dates-heures, en jours ou millisecondes selon le type de paramètre (dateDiff)
- Vérifie si une date se situe dans une période spécifique (inLastDays, inLastHours, inLastMonths, inLastYears, inNextDays, inNextHours, inNextMonths, inNextYears)
- Modifier les composants de date et d’heure (setHours, setDays, updateTimeZone)
- Effectuer des calculs et des comparaisons temporels
- Convertit entre différents formats et représentations temporels
Les fonctions de date apportent un contrôle précis sur la logique temporelle, ce qui vous permet de créer des conditions et des chemins de parcours sensibles au temps qui réagissent à des calendriers et à des plannings spécifiques.
now() ne sont pas disponibles dans l’éditeur de personnalisation du contenu des e-mails. En savoir pluscurrentTimeInMillis currentTimeInMillis
Renvoie l’heure actuelle en millisecondes depuis le début de l’époque.
currentTimeInMillis()currentTimeInMillis()
Renvoie un entier.
currentTimeInMillis()
Renvoie « 1544712617131 ».
dateDiff dateDiff
Renvoie la différence entre deux dates ou heures de même type. L’unité du résultat dépend du type de paramètre : dateOnly paramètres renvoient la différence en jours, tandis que les paramètres dateTimeOnly et dateTime renvoient la différence en millisecondes. Renvoie null si un paramètre est null.
dateDiff disponible dans l’éditeur de personnalisation. La version de l’éditeur de personnalisation accepte uniquement les paramètres dateTime et renvoie toujours la différence en jours.dateDiff(<date1>,<date2>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Paramètre | Type |
| date 1 | dateOnly, dateTimeOnly ou dateTime |
| date 2 | dateOnly, dateTimeOnly ou dateTime |
Les deux paramètres doivent utiliser le même type de données ; les types de mélange (par exemple, dateOnly avec dateTime) ne sont pas pris en charge. Les paramètres peuvent être des valeurs de date littérales, d’autres fonctions telles que les now() ou des attributs contextuels (champs de payload d’événement, champs de réponse d’action personnalisée, champs de profil ou d’entité et variables), à condition qu’ils soient saisis en tant que dateOnly, dateTimeOnly ou dateTime.
dateDiff(<dateOnly>,<dateOnly>)
Renvoie un entier représentant le nombre de jours entre les deux dates.
dateDiff(<dateTimeOnly>,<dateTimeOnly>)
Renvoie un entier représentant le nombre de millisecondes entre les deux dates et heures.
dateDiff(<dateTime>,<dateTime>)
Renvoie un entier représentant le nombre de millisecondes entre les deux dates et heures.
dateDiff(toDateOnly('2023-12-15'), toDateOnly('2023-12-12'))
Renvoie 3 (jours).
dateDiff(toDateTimeOnly('2023-12-15T00:00:00'), toDateTimeOnly('2023-12-12T00:00:00'))
Renvoie 259200000 (millisecondes, équivalent à 3 jours).
dateDiff(now(), toDateTime('2024-12-25T00:00:00Z'))
Renvoie le nombre de millisecondes entre aujourd’hui et le 25 décembre 2024.
dateDiff(#{ExperiencePlatform.ProfileFieldGroup.person.birthDate}, toDateOnly('2023-01-01'))
Renvoie le nombre de jours entre le champ de birthDate du profil et le 1er janvier 2023, en supposant que le birthDate soit saisi comme dateOnly.
inLastDays inLastDays
Renvoie « true » si une valeur dateTime donnée est comprise entre maintenant et maintenant - delta jours.
inLastDays(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Paramètre | Type |
| date et heure | dateTime |
| delta | entier |
inLastDays(<dateTime>,<integer>)
Renvoie une valeur booléenne.
inLastDays(toDateTime('2023-12-12T01:11:00Z'), 4)
Renvoie true.
inLastHours inLastHours
Renvoie « true » si une date et une heure données sont comprises entre maintenant et maintenant - delta heures.
inLastHours(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Paramètre | Type |
| date et heure | dateTime |
| delta | entier |
inLastHours(<dateTime>,<integer>)
Renvoie une valeur booléenne.
inLastHours(toDateTime('2023-12-12T01:11:00Z'), 4)
Renvoie true.
inLastHours(@event{MyEvent.timestamp}, 4)
Renvoie true.
inLastMonths inLastMonths
Renvoie « true » si une date ou une valeur dateTime donnée est comprise entre maintenant et maintenant - delta mois.
inLastMonths(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Paramètre | Type |
| date et heure | dateTime |
| delta | entier |
inLastMonths(<dateTime>,<integer>)
Renvoie une valeur booléenne.
inLastMonths(toDateTime('2023-12-12T01:11:00Z'), 4)
Renvoie true.
inLastYears inLastYears
Renvoie « true » si une date ou une valeur dateTime donnée est comprise entre maintenant et maintenant - delta ans.
inLastYears(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Paramètre | Type |
| date et heure | dateTime |
| delta | entier |
inLastYears(<dateTime>,<integer>)
Renvoie une valeur booléenne.
inLastYears(toDateTime('2023-12-12T01:11:00Z'), 4)
Renvoie true.
inNextDays inNextDays
Renvoie « true » si une date ou une valeur dateTime donnée est comprise entre maintenant et maintenant + delta jours.
inNextDays(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Paramètre | Type |
| date et heure | dateTime |
| delta | entier |
inNextDays(<dateTime>,<integer>)
Renvoie une valeur booléenne.
inNextDays(toDateTime('2023-12-12T01:11:00Z'), 4)
Renvoie true.
inNextHours inNextHours
Renvoie « true » si une date ou une valeur dateTime donnée est comprise entre maintenant et maintenant + delta heures.
inNextHours(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Paramètre | Type |
| date et heure | dateTime |
| delta | entier |
inNextHours(<dateTime>,<integer>)
Renvoie une valeur booléenne.
inNextHours(toDateTime('2023-12-12T01:11:00Z'), 4)
Renvoie true.
inNextMonths inNextMonths
Renvoie « true » si une date ou une valeur dateTime donnée est comprise entre maintenant et maintenant + delta mois.
inNextMonths(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Paramètre | Type |
| date et heure | dateTime |
| delta | entier |
inNextMonths(<dateTime>,<integer>)
Renvoie une valeur booléenne.
inNextMonths(toDateTime('2023-01-12T01:11:00Z'), 4)
Renvoie true.
inNextYears inNextYears
Renvoie « true » si une date ou une valeur dateTime donnée est comprise entre maintenant et maintenant + delta ans.
inNextYears(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Paramètre | Type |
| date et heure | dateTime |
| delta | entier |
inNextYears(<dateTime>,<integer>)
Renvoie une valeur booléenne.
inNextYears(toDateTime('2021-12-12T01:11:00Z'), 4)
Renvoie true.
now now
Renvoie la date actuelle au format date et heure. Pour plus d’informations sur les types de données, consultez cette page.
getCurrentZonedDateTime(). En savoir plusnow(<parameter>)| table 0-row-2 1-row-2 | |
|---|---|
| Paramètre | Description |
| chaîne | Identifiant du fuseau horaire (facultatif) |
now()
now("<timeZone id>")
Renvoie une valeur dateTime.
now()
Renvoie 2023-06-03T06:30Z.
toString(now())
Renvoie « 2023-06-03T06:30Z »
now("Europe/Paris")
Renvoie 2023-06-03T08:30+02:00.
nowWithDelta nowWithDelta
Renvoie la date et l’heure actuelles, ainsi qu’un décalage. Si un identifiant de fuseau horaire est spécifié, le décalage de fuseau horaire est appliqué. Pour plus d’informations sur les types de données, consultez cette page.
nowWithDelta(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Paramètre | Description |
| delta | valeur entière positive ou négative |
| partie de date | années, mois, jours, heures, minutes ou secondes sous forme de chaîne |
| identifiant de fuseau horaire | Représentation, sous forme de chaîne, de la valeur du fuseau horaire. Pour en savoir plus, voir Types de données. L’identifiant de fuseau horaire doit être une constante sous forme de chaîne. Il ne peut pas s’agir d’une référence de champ ni d’une expression. |
nowWithDelta(<delta>,<date part>
nowWithDelta(<delta>,<date part>,"<timeZone id>")
Renvoie une valeur dateTime.
nowWithDelta(-2, "hours")
nowWithDelta(-2, "hours", "Europe/Paris")
Renvoie une valeur dateTime il y a exactement 2 heures.
nowWithDelta(1, "months", "Asia/Tokyo")
Lorsqu’elle est évaluée le 31/01/2026, renvoie 2026/02/28T… ; lorsqu’elle est évaluée le 31/05/2026, renvoie 2026/06/30T…
nowWithDelta() utilise l’arithmétique des mois calendaires. Si le mois cible comporte moins de jours que le jour du mois en cours, le résultat est normalisé au dernier jour valide de ce mois. La fonction n’est pas reportée au mois suivant.
setHours setHours
Définit les heures d’une date ou d’une date sans prise en compte du fuseau horaire. Par exemple, si vous voulez attendre jusqu’à une certaine heure demain, vous pouvez forcer l’heure.
setHours(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Paramètre | Type |
| date et heure | dateTime |
| date et heure sans prise en compte du fuseau horaire | dateTimeOnly |
| heures | entier |
setHours(<dateTime>,<hours>)
Renvoie une date et une heure.
setHours(<dateTimeOnly>,<hours>)
Renvoie une date et une heure sans prendre en compte le fuseau horaire.
setHours(toDateTime('2023-12-12T01:11:00Z'), 4)
Renvoie 2023-12-12T04:11:00Z.
setHours(nowWithDelta(1, "days"), 20)
Renvoie demain à 20:XY h, XY représentant le nombre de minutes au moment de lʼévaluation de lʼheure en cours. Si l’évaluation a lieu à 02 h 45, l’heure renvoyée sera 20 h 45.
setDays setDays
Définit le jour d’une date ou d’une date sans prise en compte du fuseau horaire. Par exemple, si vous voulez attendre jusqu’à un certain jour du mois, vous pouvez forcer le jour.
setDays(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Paramètre | Type |
| date et heure | dateTime |
| date et heure sans prise en compte du fuseau horaire | dateTimeOnly |
| jours | entier |
setDays(<dateTime>,<days>)
Renvoie une date et une heure.
setDays(<dateTimeOnly>,<days>)
Renvoie une date et une heure sans prendre en compte le fuseau horaire.
setDays(toDateTime('2023-12-12T01:11:00Z'), 25)
Renvoie 2023-12-25T01:11:00Z.
setDays(toDateTimeOnly(@event{MyEvent.registrationDate}), 1)
updateTimeZone updateTimeZone
Renvoie une nouvelle valeur de date et heure, avec un nouveau fuseau horaire au même instant.
updateTimeZone(<parameters>)- identifiant de fuseau horaire : chaîne
- dateTime
updateTimeZone(<dateTime>,<timeZone id>)
Renvoie une date et une heure.
updateTimeZone( toDateTime("2023-08-28T08:15:30.123-07:00"), "Europe/Paris"))
Renvoie 2023-08-:15:30.123+02:00.
updateTimeZone(@event{MyExpEvent.timestamp}, "Australia/Sydney")
Si la valeur du champ de date et d’heure est 2021-11-16T16:55:12.939318+01:00, la fonction renvoie 2021-11-17T02:55:12.942115+11:00.
This section contains structured knowledge intended to support interpretation, retrieval, and question answering related to this topic.
For complete understanding, this information should be combined with the documentation on this page. Neither source is intended to stand alone; the page describes the feature, while this section provides additional context that helps disambiguate terminology, intent, applicability, and constraints.
- TL;DR: This page documents all date and time functions available in AJO journey expressions, covering how to get the current time, check whether a date falls within a relative time window, and modify date/time components.
Intents:
- Get the current datetime (with optional timezone) using
nowornowWithDelta - Retrieve the current time as an epoch integer using
currentTimeInMillis - Calculate the difference between two dates or date-times using
dateDiff - Check if a datetime falls within the last N days, hours, months, or years using
inLastDays,inLastHours,inLastMonths,inLastYears - Check if a datetime falls within the next N days, hours, months, or years using
inNextDays,inNextHours,inNextMonths,inNextYears - Force a specific hour or day of the month on a datetime value using
setHoursorsetDays - Convert a datetime to a different timezone while preserving the same instant using
updateTimeZone
Glossary:
- dateOnly: A date value with no time or timezone information (product-specific)
- dateTime: A date-time value that includes timezone offset information (product-specific)
- dateTimeOnly: A date-time value with no timezone information (product-specific)
- epoch milliseconds: An integer representing the number of milliseconds elapsed since 1970-01-01T00:00:00Z
- delta: An integer offset (positive or negative) used with
nowWithDeltato shift the current time by a number of years, months, days, hours, minutes, or seconds
Guardrails:
now()is only available in journey expressions; for email personalization usegetCurrentZonedDateTime()instead- The timezone ID in
nowWithDeltamust be a string constant — field references and dynamic expressions are not supported - The timezone ID in
updateTimeZonemust be a string constant dateDiffrequires both parameters to be the same data type (dateOnly,dateTimeOnly, ordateTime); mixing types is not supporteddateDiffreturnsnullif either parameter isnulldateDiffreturns days fordateOnlyparameters, but milliseconds (not days) fordateTimeOnlyanddateTimeparameters — convert accordingly when comparing results across types
Terminology:
- Canonical name: Date functions — Acronym: none — variants: date-time functions, temporal functions
- Synonyms: “now()” = “current datetime”; “currentTimeInMillis()” = “current epoch milliseconds”
- Do not confuse: “inLastDays” (looks back in time) ≠ “inNextDays” (looks forward in time)
- Do not confuse: “setHours” (replaces the hour component) ≠ “nowWithDelta” (offsets the current time)
- Do not confuse: “updateTimeZone” (same instant, different timezone representation) ≠ “setHours” (changes the time value itself)
- Do not confuse: the journey expression editor’s
dateDiff(acceptsdateOnly,dateTimeOnly, ordateTime; returns days or milliseconds depending on type) ≠ the personalization editor’sdateDiff(accepts onlydateTime; always returns days)
FAQ:
- Q: Can I use
now()in email personalization content? — No,now()is only available in journey expressions. UsegetCurrentZonedDateTime()for email personalization. - Q: How do I check if an event happened in the last 24 hours? — Use
inLastHours(@event{MyEvent.timestamp}, 24). - Q: How do I get the current time offset by 2 hours in the past? — Use
nowWithDelta(-2, "hours"). - Q: What does
updateTimeZonedo differently fromsetHours? —updateTimeZonekeeps the same instant in time but expresses it in a different timezone, whilesetHoursactually changes the hour component of the datetime value. - Q: Can the timezone parameter in
nowWithDeltabe a profile field? — No, the timezone ID must be a string constant; field references are not supported. - Q: What happens when
nowWithDelta()is used with months and the current date is a month-end date? — The function uses calendar-month arithmetic and normalizes the result to the last valid day of the target month. For example, adding 1 month to January 31 returns February 28 (not March 3).