Funzioni data date-functions
Le funzioni di data consentono di manipolare e utilizzare i valori di data e ora all’interno delle espressioni di percorso. Queste funzioni sono essenziali per le condizioni basate sul tempo, la pianificazione e i calcoli temporali nei percorsi dei clienti.
Utilizza le funzioni data quando devi:
- Ottieni l’ora o la data corrente con gestione del fuso orario specifica (now, nowWithDelta, currentTimeInMillis)
- Calcola la differenza tra due date o date-ora, in giorni o millisecondi a seconda del tipo di parametro (dateDiff)
- Controlla se una data rientra in un intervallo di tempo specifico (inLastDays, inLastHours, inLastMonths, inLastYears, inNextDays, inNextHours, inNextMonths, inNextYears)
- Modifica componenti data e ora (setHours, setDays, updateTimeZone)
- Eseguire calcoli e confronti basati sul tempo
- Conversione tra diversi formati e rappresentazioni temporali
Le funzioni di data forniscono un controllo preciso sulla logica temporale, consentendo di creare percorsi e condizioni di percorso sensibili al tempo che rispondono a specifici intervalli di tempo e pianificazioni.
now() non sono disponibili nell'editor di personalizzazione per i contenuti e-mail. Ulteriori informazionicurrentTimeInMillis currentTimeInMillis
Restituisce il tempo corrente in millisecondi epoca.
currentTimeInMillis()currentTimeInMillis()
Restituisce un numero intero.
currentTimeInMillis()
Restituisce “1544712617131”
dateDiff dateDiff
Restituisce la differenza tra due date o date-ore dello stesso tipo. L’unità del risultato dipende dal tipo di parametro: dateOnly parametri restituiscono la differenza in giorni, mentre dateTimeOnly e dateTime parametri restituiscono la differenza in millisecondi. Restituisce null se uno dei due parametri è null.
dateDiff disponibile nell'editor di personalizzazione 🔗. La versione dell'editor di personalizzazione accetta solo dateTime parametri e restituisce sempre la differenza in giorni.dateDiff(<date1>,<date2>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data 1 | dateOnly, dateTimeOnly o dateTime |
| data 2 | dateOnly, dateTimeOnly o dateTime |
Entrambi i parametri devono utilizzare lo stesso tipo di dati; la combinazione di tipi (ad esempio, dateOnly con dateTime) non è supportata. I parametri possono essere valori di data letterali, altre funzioni come now() o attributi contestuali (campi payload dell’evento, campi risposta dell’azione personalizzata, campi del profilo o dell’entità e variabili) purché siano digitati come dateOnly, dateTimeOnly o dateTime.
dateDiff(<dateOnly>,<dateOnly>)
Restituisce un numero intero che rappresenta il numero di giorni tra le due date.
dateDiff(<dateTimeOnly>,<dateTimeOnly>)
Restituisce un numero intero che rappresenta il numero di millisecondi compresi tra le due date/ore.
dateDiff(<dateTime>,<dateTime>)
Restituisce un numero intero che rappresenta il numero di millisecondi compresi tra le due date/ore.
dateDiff(toDateOnly('2023-12-15'), toDateOnly('2023-12-12'))
Restituisce 3 (giorni).
dateDiff(toDateTimeOnly('2023-12-15T00:00:00'), toDateTimeOnly('2023-12-12T00:00:00'))
Restituisce 259200000 (millisecondi, equivalenti a 3 giorni).
dateDiff(now(), toDateTime('2024-12-25T00:00:00Z'))
Restituisce il numero di millisecondi tra oggi e il 25 dicembre 2024.
dateDiff(#{ExperiencePlatform.ProfileFieldGroup.person.birthDate}, toDateOnly('2023-01-01'))
Restituisce il numero di giorni tra il campo birthDate del profilo e il 1° gennaio 2023, supponendo che birthDate sia digitato come dateOnly.
inLastDays inLastDays
Restituisce true se un dato dateTime è compreso tra now e now - delta days.
inLastDays(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inLastDays(<dateTime>,<integer>)
Restituisce un valore booleano.
inLastDays(toDateTime('2023-12-12T01:11:00Z'), 4)
Restituisce true.
inLastHours inLastHours
Restituisce true se la data e l’ora specificate sono comprese tra now e now - delta hours.
inLastHours(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inLastHours(<dateTime>,<integer>)
Restituisce un valore booleano.
inLastHours(toDateTime('2023-12-12T01:11:00Z'), 4)
Restituisce true.
inLastHours(@event{MyEvent.timestamp}, 4)
Restituisce true.
inLastMonths inLastMonths
Restituisce true se una data o un’ora specificata è compresa tra now e now - delta mesi.
inLastMonths(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inLastMonths(<dateTime>,<integer>)
Restituisce un valore booleano.
inLastMonths(toDateTime('2023-12-12T01:11:00Z'), 4)
Restituisce true.
inLastYears inLastYears
Restituisce true se una data o un valore dateTime specificato è compreso tra now e now - delta years.
inLastYears(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inLastYears(<dateTime>,<integer>)
Restituisce un valore booleano.
inLastYears(toDateTime('2023-12-12T01:11:00Z'), 4)
Restituisce true.
inNextDays inNextDays
Restituisce true se una data o un’ora specificata è compresa tra now e now + delta giorni.
inNextDays(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inNextDays(<dateTime>,<integer>)
Restituisce un valore booleano.
inNextDays(toDateTime('2023-12-12T01:11:00Z'), 4)
Restituisce true.
inNextHours inNextHours
Restituisce true se una data o un’ora specificata è compresa tra now e now + delta ore.
inNextHours(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inNextHours(<dateTime>,<integer>)
Restituisce un valore booleano.
inNextHours(toDateTime('2023-12-12T01:11:00Z'), 4)
Restituisce true.
inNextMonths inNextMonths
Restituisce true se una data o un’ora specificata è compresa tra now e now + delta mesi.
inNextMonths(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inNextMonths(<dateTime>,<integer>)
Restituisce un valore booleano.
inNextMonths(toDateTime('2023-01-12T01:11:00Z'), 4)
Restituisce true.
inNextYears inNextYears
Restituisce true se una data o un’ora specificata è compresa tra now e now + delta anni.
inNextYears(<dateTime>,<delta>)| table 0-row-2 1-row-2 2-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| delta | intero |
inNextYears(<dateTime>,<integer>)
Restituisce un valore booleano.
inNextYears(toDateTime('2021-12-12T01:11:00Z'), 4)
Restituisce true.
now now
Restituisce la data corrente in formato data e ora. Per ulteriori informazioni sui tipi di dati, consultare questa pagina.
getCurrentZonedDateTime(). Ulteriori informazioninow(<parameter>)| table 0-row-2 1-row-2 | |
|---|---|
| Parametro | Descrizione |
| stringa | Identificatore del fuso orario (facoltativo) |
now()
now("<timeZone id>")
Restituisce un valore dateTime.
now()
Restituisce 2023-06-03T06:30Z.
toString(now())
Restituisce “2023-06-03T06:30Z”
now("Europe/Paris")
Restituisce 2023-06-03T08:30+02:00.
nowWithDelta nowWithDelta
Restituisce il valore datetime corrente comprensivo di un offset. Se viene specificato un ID di fuso orario, verrà applicato lo scostamento del fuso orario. Per ulteriori informazioni sui tipi di dati, consultare questa pagina.
nowWithDelta(<parameters>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parametro | Descrizione |
| delta | valore intero positivo o negativo |
| parte data | anni, mesi, giorni, ore, minuti o secondi come stringa |
| id fuso orario | rappresentazione stringa del valore del fuso orario. Per ulteriori informazioni, vedere Tipi di dati. L’ID del fuso orario deve essere una costante stringa. Non può essere un riferimento di campo né un’espressione. |
nowWithDelta(<delta>,<date part>
nowWithDelta(<delta>,<date part>,"<timeZone id>")
Restituisce un valore dateTime.
nowWithDelta(-2, "hours")
nowWithDelta(-2, "hours", "Europe/Paris")
Restituisce un valore dateTime esattamente 2 ore fa.
nowWithDelta(1, "months", "Asia/Tokyo")
Quando valutato il 31/01/2026, restituisce il 31/02/2026; quando valutato il 31/05/2026, restituisce il 30/06/2026…
nowWithDelta() utilizza l’aritmetica del mese del calendario. Se il mese di destinazione ha un numero di giorni inferiore al giorno del mese corrente, il risultato viene normalizzato all’ultimo giorno valido di quel mese. La funzione non viene riportata al mese successivo.
setHours setHours
Imposta solo le ore di una data/ora o data/ora. Ad esempio, se desideri aspettare fino a un’ora specifica domani, puoi forzare l’ora.
setHours(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| data e ora senza considerare il fuso orario | dateTimeOnly |
| ore | intero |
setHours(<dateTime>,<hours>)
Restituisce un valore datetime.
setHours(<dateTimeOnly>,<hours>)
Restituisce un valore datetime senza considerare il fuso orario.
setHours(toDateTime('2023-12-12T01:11:00Z'), 4)
Restituisce 2023-12-12T04:11:00Z.
setHours(nowWithDelta(1, "days"), 20)
Restituisce domani alle 20.00, dove XY corrisponde ai minuti al momento della valutazione dell’ora corrente. :XYSe la valutazione viene eseguita alle 02:45, l’ora restituita sarà le 20:45.
setDays setDays
Imposta solo il giorno di un’ora o di una data. Ad esempio, se desideri attendere fino a un determinato giorno del mese, puoi forzare il giorno.
setDays(<parameter>)| table 0-row-2 1-row-2 2-row-2 3-row-2 | |
|---|---|
| Parametro | Tipo |
| data e ora | dateTime |
| data e ora senza considerare il fuso orario | dateTimeOnly |
| giorni | intero |
setDays(<dateTime>,<days>)
Restituisce un valore datetime.
setDays(<dateTimeOnly>,<days>)
Restituisce un valore datetime senza considerare il fuso orario.
setDays(toDateTime('2023-12-12T01:11:00Z'), 25)
Restituisce 2023-12-25T01:11:00Z.
setDays(toDateTimeOnly(@event{MyEvent.registrationDate}), 1)
updateTimeZone updateTimeZone
Restituisce una nuova data e ora, con un nuovo fuso orario nello stesso istante.
updateTimeZone(<parameters>)- id fuso orario: stringa
- dateTime
updateTimeZone(<dateTime>,<timeZone id>)
Restituisce un valore datetime.
updateTimeZone( toDateTime("2023-08-28T08:15:30.123-07:00"), "Europe/Paris"))
Restituisce 2023-08-28T17:15:30.123+02:00.
updateTimeZone(@event{MyExpEvent.timestamp}, "Australia/Sydney")
Se il valore del campo timestamp è 2021-11-16T16:55:12.939318+01:00, la funzione restituisce 2021-11-17T02:55:12.942115+11:00.
Questa sezione contiene informazioni strutturate che supportano l’interpretazione, il recupero e la risposta alle domande relative a questo argomento.
Per una comprensione completa, queste informazioni devono essere unite alla documentazione su questa pagina. Nessuna delle due origini è progettata per essere indipendente; la pagina descrive la funzione, mentre questa sezione fornisce un contesto aggiuntivo che aiuta a non ambiguare la terminologia, le finalità, l’applicabilità e i vincoli.
- TL;DR: In questa pagina sono documentate tutte le funzioni di data e ora disponibili nelle espressioni di percorso di AJO, con informazioni su come ottenere l’ora corrente, verificare se una data rientra in una finestra temporale relativa e modificare i componenti data/ora.
Intenti:
- Ottieni il datetime corrente (con fuso orario facoltativo) utilizzando
nowonowWithDelta - Recupera l’ora corrente come numero intero epoca utilizzando
currentTimeInMillis - Calcola la differenza tra due date o date/ore utilizzando
dateDiff - Controlla se un valore datetime rientra negli ultimi N giorni, ore, mesi o anni utilizzando
inLastDays,inLastHours,inLastMonths,inLastYears - Controlla se un datetime rientra nei N giorni, ore, mesi o anni successivi utilizzando
inNextDays,inNextHours,inNextMonths,inNextYears - Forza un’ora o un giorno specifico del mese su un valore datetime utilizzando
setHoursosetDays - Convertire un datetime in un fuso orario diverso mantenendo lo stesso istante utilizzando
updateTimeZone
Glossario:
- dateOnly: un valore di data senza informazioni sull’ora o sul fuso orario (specifico per prodotto)
- dateTime: valore data-ora che include informazioni di scostamento fuso orario (specifico per prodotto)
- dateTimeOnly: valore data-ora senza informazioni sul fuso orario (specifico per prodotto)
- millisecondi epoca: numero intero che rappresenta il numero di millisecondi trascorsi dal 1970-01-01T00:00:00Z
- delta: offset intero (positivo o negativo) utilizzato con
nowWithDeltaper spostare il tempo corrente di un numero di anni, mesi, giorni, ore, minuti o secondi
Guardrail:
now()è disponibile solo nelle espressioni di percorso; per la personalizzazione delle e-mail utilizza invecegetCurrentZonedDateTime()- L’ID del fuso orario in
nowWithDeltadeve essere una costante stringa. I riferimenti ai campi e le espressioni dinamiche non sono supportati - L’ID del fuso orario in
updateTimeZonedeve essere una costante stringa dateDiffrichiede che entrambi i parametri siano dello stesso tipo di dati (dateOnly,dateTimeOnlyodateTime); i tipi di combinazione non sono supportatidateDiffrestituiscenullse uno dei parametri ènulldateDiffrestituisce giorni perdateOnlyparametri, ma millisecondi (non giorni) perdateTimeOnlyedateTimeparametri. Convertire di conseguenza quando si confrontano i risultati tra i tipi
Terminologia:
- Nome canonico: funzioni data — Acronimo: none — varianti: funzioni data-ora, funzioni temporali
- Sinonimi: “now()” = “current datetime”; “currentTimeInMillis()” = “current epoch milliseconds”
- Non confondere: “inLastDays” (guarda indietro nel tempo) ≠ “inNextDays” (guarda avanti nel tempo)
- Non confondere: “setHours” (sostituisce il componente Ora) ≠ “nowWithDelta” (distanzia l’ora corrente)
- Non confondere: “updateTimeZone” (stessa istantanea, diversa rappresentazione del fuso orario) ≠ “setHours” (modifica il valore orario stesso)
- Da non confondere: l’editor di espressioni di percorso
dateDiff(accettadateOnly,dateTimeOnlyodateTime; restituisce giorni o millisecondi a seconda del tipo) ≠ l’editor di personalizzazionedateDiff(accetta solodateTime; restituisce sempre giorni)
Domande frequenti:
- Q: posso utilizzare
now()nel contenuto di personalizzazione e-mail? — No,now()è disponibile solo nelle espressioni di percorso. UtilizzagetCurrentZonedDateTime()per la personalizzazione delle e-mail. - D: come posso verificare se si è verificato un evento nelle ultime 24 ore? — Utilizza
inLastHours(@event{MyEvent.timestamp}, 24). - D: come si ottiene uno scostamento dell’ora corrente di 2 ore nel passato? — Utilizza
nowWithDelta(-2, "hours"). - D: cosa fa
updateTimeZonein modo diverso dasetHours? —updateTimeZonemantiene lo stesso istante di tempo ma lo esprime in un fuso orario diverso, mentresetHoursmodifica effettivamente il componente ora del valore datetime. - Q: il parametro del fuso orario in
nowWithDeltapuò essere un campo del profilo? — No, l’ID del fuso orario deve essere una costante stringa; i riferimenti ai campi non sono supportati. - D: cosa succede quando
nowWithDelta()viene utilizzato con mesi e la data corrente è un mese di fine? — La funzione utilizza l’aritmetica del mese di calendario e normalizza il risultato fino all’ultimo giorno valido del mese di destinazione. Ad esempio, aggiungendo 1 mese al 31 gennaio, viene restituito il 28 febbraio (non il 3 marzo).