Nesse artigo você encontrará as seguintes informações:
formatDate (date; format; [timezone])
parseDate (text; format; [timezone])
addDays (date; number)
addHours (date; number)
addMinutes (date; number)
addMonths (date; number)
addSeconds (date; number)
addYears (date; years)
setSecond (date; number)
setMinute (date; number)
setHour (date; number)
setDay (date; number/name of the day in english)
setDate (date; number)
setMonth (date; number/name of the month in English)
setYear (date; number)
Examples
formatDate (date; format; [timezone])
Quando usar: você tem um “Date value” (valor de data) que deseja converter (formato) em um “Text value” (representação textual legível por humanos) como 12-10-2019 20:30 ou Ago 18, 2019 10:00 AM
Parâmetros
A segunda coluna indica o tipo esperado. Se um tipo diferente for fornecido, a coerção de tipo será aplicada.
data | Date | Valor de data a ser convertido em um valor de texto. |
format | Text | Formato especificado usando Tokens para formatação de data/hora. Exemplo : DD.MM.YYYY HH:mm |
timezone | Text | Opcional. O fuso horário usado para a conversão. Consulte Lista de fusos horários do banco de dados tz, coluna "TZ database name" para obter a lista de fusos horários reconhecidos. Se omitido, O Toolzz Connect usa o fuso horário da organização. Você pode visualizar e editar esse fuso horário acessando Profile > Time zone options > Scenarios. Exemplos: Europe/Prague, UTC |
❗ Observação
Somente os valores listados na coluna "TZ database name" são reconhecidos pela função como um fuso horário válido. Qualquer outro valor será ignorado e o fuso horário da organização especificado em seu perfil será usado.
Return value and type (valor e tipo de retorno)
Representação de texto do valor Date fornecido de acordo com o formato e fuso horário especificados. Tipo é Texto.
Exemplos
Os fusos horários da organização e da Web foram definidos “Europe/Prague” nos exemplos a seguir.
Exemplo 5. formatDate(1. Date created;MM/DD/AAAA)
= 01/10/2018
Exemplo 6. formatDate(1. Date created;AAAA-MM-DD hh:mm A)
= 01/10/2018 09:32
Exemplo 7. formatDate(1. Date created;DD.MM.AAAA HH:mm ;UTC)
= 01.10.2018 07:32
Exemplo 8. formatDate(now;MM/DD/AAAA HH:mm)
= 19.03.2019 15:30
parseDate (text; format; [timezone])
Quando usar: você tem um “Text value” representando uma data (por exemplo, 12-10-2019 20:30 ou Ago 18, 2019 10:00 AM) e deseja convertê-lo (parse) em um “Data value” (representação binária legível por máquina).
Parâmetros
A segunda coluna indica o tipo esperado. Se um tipo diferente for fornecido, a coerção de tipo será aplicada.
text | Text | Valor de texto a ser convertido em um valor de Data. |
format | Text | Formato especificado usando Tokens para análise de data/hora. Exemplo : DD.MM.YYYY HH:mm |
timezone | Text | Opcional. O fuso horário usado para a conversão. Consulte Lista de fusos horários do banco de dados tz, coluna "TZ database name" para obter a lista de fusos horários reconhecidos. Se omitido, o Toolzz Connect usa o fuso horário da organização. Você pode visualizar e editar esse fuso horário acessando Profile > Time zone options > Scenarios. Exemplos : Europe/Prague, UTC |
❗ Observação
Somente os valores listados na coluna "TZ database name" são reconhecidos pela função como um fuso horário válido. Qualquer outro valor será ignorado e o fuso horário da organização especificado em seu perfil será usado.
Return value and type (Valor e tipo de retorno)
Representação de data do valor de texto fornecido de acordo com o formato e fuso horário especificados. O tipo é Data.
Exemplos
Observe que nos exemplos a seguir o valor de “Date” retornado é expresso de acordo com a ISO 8601, mas o valor real resultante é do tipo “Date”.
Exemplo 9. parseDate(28/12/2016 ;AAAA-MM-DD)
= 2016-12-28T00:00:00.000Z
Exemplo 10. parseDate(28/12/2016 16:03 ;AAAA-MM-DD HH:mm)
= 2016-12-28T16:03:00.000Z
Exemplo 11. parseDate(28/12/2016 16h03 ;AAAA-MM-DD hh:mm a)
= 2016-12-28T16:03:06.000Z
Exemplo 12. parseDate(1482940986 ;X)
= 2016-12-28T16:03:06.000Z
addDays (date; number)
Retorna uma nova data como resultado da adição de um determinado número de dias a uma data. Para subtrair dias, digite um número negativo.
addDays(2016-12-08T15:55:57.536Z ;2)
= 2016-12-10T15:55:57.536Z
addDays(2016-12-08T15:55:57.536Z ;-2)
= 2016-12-6T15:55:57.536Z
addHours (date; number)
Retorna uma nova data como resultado da adição de um determinado número de horas a uma data. Para subtrair horas, insira um número negativo.
addHours( 2016-12-08T15:55:57.536Z ; 2 )
= 2016-12-08T17:55:57.536Z
addHours( 2016-12-08T15:55:57.536Z ; -2 )
= 2016-12-08T13:55:57.536Z
addMinutes (date; number)
Retorna uma nova data como resultado da adição de um determinado número de minutos a uma data. Para subtrair minutos, digite um número negativo.
addMinutes( 2016-12-08T15:55:57.536Z ; 2 )
= 2016-12-08T15:57:57.536Z
addMinutes( 2016-12-08T15:55:57.536Z ; -2 )
= 2016-12-08T15:53:57.536Z
addMonths (date; number)
Retorna uma nova data como resultado da adição de um determinado número de meses a uma data. Para subtrair meses, digite um número negativo.
addMonths( 2016-12-08T15:55:57.536Z ; 2 )
= 2016-10-08T15:55:57.536Z
addMonths( 2016-12-08T15:55:57.536Z ; -2 )
= 2016-06-08T15:55:57.536Z
addSeconds (date; number)
Retorna uma nova data como resultado da adição de um determinado número de segundos a uma data. Para subtrair segundos, insira um número negativo.
addSeconds( 2016-12-08T15:55:57.536Z ; 2 )
= 2016-12-08T15:55:59.536Z
addSeconds( 2016-12-08T15:55:57.536Z ; -2 )
= 2016-12-08T15:55:55.536Z
addYears (date; years)
Retorna uma nova data como resultado da adição de um determinado número de anos a uma data. Para subtrair anos, insira um número negativo.
addYears( 2016-12-08T15:55:57.536Z ; 2 )
= 2018-08-08T15:55:57.536Z
addYears( 2016-12-08T15:55:57.536Z ; -2 )
= 2014-08-08T15:55:57.536Z
setSecond (date; number)
Retorna uma nova data com os segundos especificados nos parâmetros. Aceita números de 0 a 59. Se for informado um número fora desta faixa, retornará a data com os segundos do(s) minuto(s) anterior(es) ou subseqüente(s), conforme o caso.
setSecond( 2015-10-07T11:36:39.138Z ; 10 )
= 2015-10-07T11:36:10.138Z
setSecond( 2015-10-07T11:36:39.138Z ; 61 )
= 2015-10-07T11:37:01.138Z
setMinute (date; number)
Retorna uma nova data com os minutos especificados nos parâmetros. Aceita números de 0 a 59. Se for informado um número fora desta faixa, retornará a data com os minutos da(s) hora(s) anterior(es) ou subsequente(s), conforme o caso.
setMinute( 2015-10-07T11:36:39.138Z ; 10 )
= 2015-10-07T11:10:39.138Z
setMinute( 2015-10-07T11:36:39.138Z ; 61 )
= 2015-10-07T12:01:39.138Z
setHour (date; number)
Retorna uma nova data com a hora especificada nos parâmetros. Aceita números de 0 a 59. Caso seja informado um número fora desta faixa, retornará a data com a hora do(s) dia(s) anterior(es) ou subsequente(s), conforme o caso.
setHour( 2015-10-07T11:36:39.138Z ; 10 )
= 2015-08-07T06:36:39.138Z
setHour( 2015-10-07T11:36:39.138Z ; 61 )
= 2015-08-06T18:36:39.138Z
setDay (date; number/name of the day em inglês)
Retorna uma nova data com o dia especificado nos parâmetros. Pode ser usado para definir o dia da semana, com domingo como 1 e sábado como 7. Se o valor fornecido for de 1 a 7, a data resultante estará dentro da semana atual (domingo a sábado). Se um número for fornecido fora do intervalo, ele retornará o dia da(s) semana(s) anterior(es) ou subsequente(s), de acordo.
setDay( 2018-06-27T11:36:39.138Z ; monday )
= 2018-06-25T11:36:39.138Z
setDay( 2018-06-27T11:36:39.138Z ; 1 )
= 2018-06-24T11:36:39.138Z
setDay( 2018-06-27T11:36:39.138Z ; 7 )
= 2018-06-30T11:36:39.138Z
setDate (date; number)
Retorna uma nova data com o dia do mês especificado nos parâmetros. Aceita números de 1 a 31. Se um número for fornecido fora do intervalo, ele retornará o dia do(s) mês(es) anterior(es) ou subseqüente(s), de acordo.
setDate( 2015-08-07T11:36:39.138Z ; 5 )
= 2015-08-05T11:36:39.138Z
setDate( 2015-08-07T11:36:39.138Z ; 32 )
= 2015-09-01T11:36:39.138Z
setMonth (date; number/name of the month em inglês)
Retorna uma nova data com o mês especificado nos parâmetros. Aceita números de 1 a 12. Se for fornecido um número fora desse intervalo, retornará o mês do(s) ano(s) anterior(es) ou subseqüente(s), de acordo.
setMonth( 2015-08-07T11:36:39.138Z ; 5 )
= 2015-05-07T11:36:39.138Z
setMonth( 2015-08-07T11:36:39.138Z ; 17 )
= 2016-05-07T11:36:39.138Z
setMonth( 2015-08-07T11:36:39.138Z ; january )
= 2015-01-07T12:36:39.138Z
setYear (date; number)
Retorna uma nova data com o ano especificado nos parâmetros.
setYear( 2015-08-07T11:36:39.138Zv ; 2017 )
= 2017-08-07T11:36:39.138Z
Exemplos
Como calcular um dia da semana no mês
❗ Observação
Adaptado para o Toolzz Connect a partir desta fonte original.
Se você precisar calcular uma data correspondente a um dia da semana no mês (por exemplo, 1ª terça-feira, 3ª sexta-feira etc.), poderá usar a seguinte fórmula:
Você pode copiar e colar o código da fórmula em um campo:
{{ addDays(setDate(1.date; 1 ); 1. n * 7 - formatDate(addDays(setDate(1.date; 1 ); "-" + 1. dow); "E" )) }}
A fórmula contém os seguintes itens:
1.n | um dia:
|
2.dow | dia da semana
|
1.date | A data determina o mês. Para calcular um dia da semana no mês atual, use a variável “now”. |
Caso deseje calcular apenas um caso específico, por exemplo, 2ª quarta-feira, você pode substituir os itens 1.n e 2.dow na fórmula pelos números correspondentes. Para a 2ª quarta-feira do mês atual, você usaria os seguintes valores:
1.n=2
1.dow=3
1.date=now
Explicação:
setDate(now;1) retorna primeiro do mês atual
formatDate(....;E) retorna o dia da semana (1, 2, ... 6)
veja a fonte original para o resto
Como calcular dias entre datas
Uma possibilidade é empregar a seguinte expressão:
Você pode copiar e colar o seguinte código:
{{ round((2.value - 1. value) / 1000 / 60 / 60 / 24 ) }}
❗ Observação
Os valores de D1 e D2 devem ser do tipo “Date”. Se forem do tipo “String” (por exemplo, "20.10.2018"), use a função ““parseDate()” para convertê-los para o tipo “Date”.
A função “round()” é utilizada para casos em que uma das datas ficam dentro do horário de verão e a outra não. Nesses casos, a diferença em horas é de uma hora a menos/a mais e dividindo-a por 24 dá um resultado não inteiro.
Como calcular o último dia/milissegundo do mês
Ao especificar um intervalo de “Dates” (por exemplo, em um módulo de pesquisa) abrangendo todo o mês anterior como “closed interval “ (o intervalo que inclui seus dois pontos limite), é necessário calcular o último dia do mês.
01-09-2019 ≤ D ≤ 30-09-2019
A fórmula abaixo mostra uma maneira de calcular o último dia do mês anterior:
Você pode copiar e colar o seguinte código:
{{ addDays(setDate(agora; 1 ); -1 ) }}
Em alguns casos, é necessário calcular não apenas o último dia do mês, mas literalmente seu último milissegundo:
2019-09-01T00:00:00.000Z ≤ D ≤ 2019-09-30T23:59:59.999Z
A fórmula abaixo mostra uma maneira de calcular o último milissegundo do mês anterior:
Você pode copiar e colar o seguinte código:
{{ parseDate (parseDate(formatDate(agora; "AAAAMM01" ); "AAAAMMDD" ; "UTC" ) - 1 ; "x" )}}
Se o resultado respeitar suas configurações de fuso horário, simplesmente omita o argumento UTC:
{{ parseDate (parseDate(formatDate(agora; "AAAAMM01" ); "AAAAMMDD" ) - 1 ; "x" )}}
No entanto, é preferível usar “half-open interval” (o intervalo que exclui um de seus pontos limite), especificando o primeiro dia do mês seguinte e substituindo o operador menor ou igual a menor que:
01/09/2019 ≤ D < 01/10/2019
2019-09-01T00:00:00.000Z ≤ D < 2019-10-01T00:00:00.000Z
Como transformar segundos em horas, minutos e segundos
Uma possibilidade é usar a seguinte expressão mostrada abaixo:
Você pode copiar e colar o seguinte código:
{{ floor(1.seconds / 3600 ) }} :{{floor((1.seconds % 3600 ) / 60 )}}:{{((1.seconds % 3600 ) % 60 )}}
❗ Observação
Os valores de “Second” devem ser do tipo numérico. Esta função é adequada apenas se o segundo valor for menor que 86400 (menos de um dia).
Pronto! Agora voce já sabe tudo sobre as funções de data e hora no Toolzz Connect.