Trabalhando com datas em Jestor

Manipulando datas

Quais são os formatos e valores de datas no Jestor?

Ao trabalhar com datas dentro do Jestor, há uma coisa a ter em mente que pode não ser imediatamente óbvia ao executar um gatilho pela primeira vez: a formatação de data pode diferir dependendo de quando e como você está obtendo essas informações.

  • Se o valor já estiver salvo no banco de dados do Jestor, ele terá formatação de data. Isso significa que se você estiver executando um gatilho como Depois que um registro for criado/atualizado/excluído, ou se estiver obtendo as informações por meio de uma função Jestor.loadData(), você obterá as informações formatadas como mm/dd/ aaaa.
  • Se o valor ainda não estiver salvo no banco de dados do Jestor, ele terá um valor de timestamp Unix. Isso significa que, se você estiver obtendo um valor por meio da entrada do usuário em Antes de um registro ser criado/atualizado/excluído, será algo como 1628196834.
  • Se o valor for proveniente de um gatilho, ele manterá a formatação que você definiu no gatilho. Isso significa que se você fizer algo como $date = date('Y-m-d'), ele terá formatação Y-m-d.

🚧

Diferenças regionais

Se você estiver usando Jestor em português brasileiro, a formatação de data padrão em um campo será dd/mm/aaaa em vez de mm/dd/aaaa, e você deve levar isso em consideração ao criar gatilhos e funções.

Quando você deseja gravar uma data em um campo de data, pode passar o valor como carimbo de data/hora Unix ou com formatação regional, mas é uma boa prática sempre usar datas no formato padrão ISO Y-m-d ao salvar informações, pois sempre funcionará independentemente da região da conta. Além disso, filtros em pesquisas como Jestor.loadData() exigirão formatação Y-m-d.

Como manipular datas no Jestor?

Você pode usar funções padrão do PHP para manipular datas da maneira que precisar, sendo as três funções mais usadas:

  • date($format, $value): esta função pega um valor de timestamp Unix e o converte em uma data formatada.
  • time(): obtém o valor de tempo Unix do momento exato em que a função é chamada.
  • strtotime(): esta função pode ser usada para transformar uma data formatada em um timestamp Unix ou para obter um timestamp Unix e manipulá-lo (como adicionar X dias da semana).

Você pode obter mais informações sobre date(), [time()](https://www.php.net/manual /en/function.time.php) e strtotime() aqui.

🚧

Diferenças regionais

Se você estiver usando Jestor em português brasileiro, saiba que strtotime() não converterá datas dd/mm/aaaa corretamente.

Uma prática comum seria converter o formato para dd-mm-aaaa com uma função str_replace(), que será então aceita em strtotime() corretamente.

Exemplo: strtotime(str_replace('/','-',$braziliandate));

Exemplos comuns

Abaixo estão alguns exemplos levando em consideração situações comuns relacionadas a datas em Jestor:

#When using a Before a record is created trigger to add 1 week to a date.

$date = $objectNew['meeting_date'];
$date = strtotime('+1 week',$date);

#When using an After a record is created trigger to add 1 week to a date.

$date = $objectNew['meeting_date'];
$date = strtotime('+1 week',strtotime($date));

#Searching for a record in Jestor and using a value from a date field.

$search = Jestor.loadData('table_name',['where' => ['id_table_name' => $id]]);
$date = search[0]['meeting_date'];
$date = strtotime('+1 week',strtotime($date));