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 :

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.

NOTE
Les fonctions de cette page sont disponibles dans les expressions de parcours. Certaines fonctions telles que now() ne sont pas disponibles dans l’éditeur de personnalisation du contenu des e-mails. En savoir plus

currentTimeInMillis currentTimeInMillis

Renvoie l’heure actuelle en millisecondes depuis le début de l’époque.

Syntaxe
currentTimeInMillis()
Paramètres
Cette fonction n’utilise aucun paramètre.
Signatures et type renvoyé

currentTimeInMillis()

Renvoie un entier.

Exemples

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.

NOTE
Il s’agit d’une fonction différente de la 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.
Syntaxe
dateDiff(<date1>,<date2>)
Paramètres
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.

Signatures et type renvoyé

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.

Exemples

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.

Syntaxe
inLastDays(<dateTime>,<delta>)
Paramètres
table 0-row-2 1-row-2 2-row-2
Paramètre Type
date et heure dateTime
delta entier
Signatures et type renvoyé

inLastDays(<dateTime>,<integer>)

Renvoie une valeur booléenne.

Exemples

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.

Syntaxe
inLastHours(<dateTime>,<delta>)
Paramètres
table 0-row-2 1-row-2 2-row-2
Paramètre Type
date et heure dateTime
delta entier
Signatures et type renvoyé

inLastHours(<dateTime>,<integer>)

Renvoie une valeur booléenne.

Exemples

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.

Syntaxe
inLastMonths(<dateTime>,<delta>)
Paramètres
table 0-row-2 1-row-2 2-row-2
Paramètre Type
date et heure dateTime
delta entier
Signatures et type renvoyé

inLastMonths(<dateTime>,<integer>)

Renvoie une valeur booléenne.

Exemples

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.

Syntaxe
inLastYears(<dateTime>,<delta>)
Paramètres
table 0-row-2 1-row-2 2-row-2
Paramètre Type
date et heure dateTime
delta entier
Signatures et type renvoyé

inLastYears(<dateTime>,<integer>)

Renvoie une valeur booléenne.

Exemples

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.

Syntaxe
inNextDays(<dateTime>,<delta>)
Paramètres
table 0-row-2 1-row-2 2-row-2
Paramètre Type
date et heure dateTime
delta entier
Signatures et type renvoyé

inNextDays(<dateTime>,<integer>)

Renvoie une valeur booléenne.

Exemples

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.

Syntaxe
inNextHours(<dateTime>,<delta>)
Paramètres
table 0-row-2 1-row-2 2-row-2
Paramètre Type
date et heure dateTime
delta entier
Signatures et type renvoyé

inNextHours(<dateTime>,<integer>)

Renvoie une valeur booléenne.

Exemples

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.

Syntaxe
inNextMonths(<dateTime>,<delta>)
Paramètres
table 0-row-2 1-row-2 2-row-2
Paramètre Type
date et heure dateTime
delta entier
Signatures et type renvoyé

inNextMonths(<dateTime>,<integer>)

Renvoie une valeur booléenne.

Exemples

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.

Syntaxe
inNextYears(<dateTime>,<delta>)
Paramètres
table 0-row-2 1-row-2 2-row-2
Paramètre Type
date et heure dateTime
delta entier
Signatures et type renvoyé

inNextYears(<dateTime>,<integer>)

Renvoie une valeur booléenne.

Exemples

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.

NOTE
Cette fonction n’est disponible que dans les expressions de parcours. Pour la personnalisation des e-mails et d’autres contenus, utilisez plutôt getCurrentZonedDateTime(). En savoir plus
Syntaxe
now(<parameter>)
Paramètres
table 0-row-2 1-row-2
Paramètre Description
chaîne Identifiant du fuseau horaire (facultatif)
Signatures et type renvoyé

now()

now("<timeZone id>")

Renvoie une valeur dateTime.

Exemples

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.

Syntaxe
nowWithDelta(<parameters>)
Paramètres
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.
Signatures et type renvoyé

nowWithDelta(<delta>,<date part>

nowWithDelta(<delta>,<date part>,"<timeZone id>")

Renvoie une valeur dateTime.

Exemples

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.

Syntaxe
setHours(<parameter>)
Paramètres
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
Signatures et type renvoyé

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.

Exemples

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.

Syntaxe
setDays(<parameter>)
Paramètres
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
Signatures et type renvoyé

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.

Exemples

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.

Syntaxe
updateTimeZone(<parameters>)
Paramètres
  • identifiant de fuseau horaire : chaîne
  • dateTime
Signature et type renvoyé

updateTimeZone(<dateTime>,<timeZone id>)

Renvoie une date et une heure.

Exemples

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.

AI Knowledge Reference

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 now or nowWithDelta
  • 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 setHours or setDays
  • 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 nowWithDelta to 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 use getCurrentZonedDateTime() instead
  • The timezone ID in nowWithDelta must be a string constant — field references and dynamic expressions are not supported
  • The timezone ID in updateTimeZone must be a string constant
  • dateDiff requires both parameters to be the same data type (dateOnly, dateTimeOnly, or dateTime); mixing types is not supported
  • dateDiff returns null if either parameter is null
  • dateDiff returns days for dateOnly parameters, but milliseconds (not days) for dateTimeOnly and dateTime parameters — 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 (accepts dateOnly, dateTimeOnly, or dateTime; returns days or milliseconds depending on type) ≠ the personalization editor’s dateDiff (accepts only dateTime; always returns days)

FAQ:

  • Q: Can I use now() in email personalization content? — No, now() is only available in journey expressions. Use getCurrentZonedDateTime() 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 updateTimeZone do differently from setHours?updateTimeZone keeps the same instant in time but expresses it in a different timezone, while setHours actually changes the hour component of the datetime value.
  • Q: Can the timezone parameter in nowWithDelta be 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).
recommendation-more-help
journey-optimizer-help