Oii @Ricardo_da_Silveira!
Tenta essas funções:
function formataData(data){
let data2 = new Date(data);
let dataFormatada = padTo2Digits((data2.getDate() )) + "/" + padTo2Digits((data2.getMonth() + 1)) + "/" + data2.getFullYear();
return dataFormatada;
}
function padTo2Digits(num) {
return num.toString().padStart(2, '0');
}
Você chama a formataData(data), a mesma vai te retornar a data já formatada. Fiz o teste com a sua data e funcionou corretamente.
Olá @Jessica_Vaz , muito obrigado pela tua resposta!
Não deu certo pra mim, eu abri para executar um script, com a variável de entrada “response” (que veio da requisição), e coloquei dessa forma:
function run(response) {
var parsedResponse = JSON.parse(response);
var data = parsedResponse@datanascimento;
return data
}
function padTo2Digits(num) {
return num.toString().padStart(2, '0');
}
function formataData(data){
let data2 = new Date(data);
let dataFormatada = padTo2Digits((data2.getDate() )) + "/" + padTo2Digits((data2.getMonth() + 1)) + "/" + data2.getFullYear();
return dataFormatada;
}
O que fiz de errado?
Muito obrigado!!!
Boa tarde @Ricardo_da_Silveira
Nesse ponto do código ao acessar o campo datanascimento deve-se acessar com ponto( . ) ao invés de arroba(@).
Olha se isso resolve o seu problema!!!
Agora saiu alguma coisa, mas não foi a data formatada, o resultado foi esse:
5/29/1985 12:00:00 AM
Você precisaria de qual formatação de data ?
Seria essa aqui: “DD/MM/AAAA”
Esse script abaixo retorna o formato que você quer, é necessário apenas uma adaptação pegando a sua variável:
const data = '1955-05-29T00:00:00';
// Cria um objeto Date a partir da data de nascimento
const dateResponse = new Date(data);
// Formata a data no formato dd/mm/yyyy
const dataFormatada = dateResponse.toLocaleDateString('pt-BR', { day: '2-digit', month: '2-digit', year: 'numeric' });
console.log(dataFormatada); // 29/05/1955
Oi @Aline_Camargos !
O script ficou dessa forma:
function run(response) {
var parsedResponse = JSON.parse(response);
var dataNascimento = parsedResponse.datanascimento;
const date = new Date(dataNascimento);
const dataFormatada = date.toLocaleDateString('pt-BR', { day: '2-digit', month: '2-digit', year: 'numeric' });
return dataFormatada
}
E essa foi a resposta:
Tuesday, May 28, 1985
ps.: A data que usei foi “1985-05-29T00:00:00”
Tem dois errinhos no seu código:
Você esqueceu de chamar a função, e para acessar objetos no JS se utiliza . ou ‘nome_do_campo’]
Ele vai ficar assim:
function run(response) {
var parsedResponse = JSON.parse(response);
var data = formataData(parsedResponse.datanascimento);
return data
}
function padTo2Digits(num) {
return num.toString().padStart(2, '0');
}
function formataData(data){
let data2 = new Date(data);
let dataFormatada = padTo2Digits((data2.getDate() )) + "/" + padTo2Digits((data2.getMonth() + 1)) + "/" + data2.getFullYear();
return dataFormatada;
}
Testei aqui e retornou certinho:
Realizei o teste no Console do navegador, por isso tem algumas diferenças, mas o correto para se usar no blip foi o que te mandei.
Perfeito @Jessica_Vaz ! Agora foi, muito obrigado! Tenho zero intimidade com javascript, daí é um martírio toda vez que tenho que trabalhar com ele 😕
Mas surgiu um outro problema 🙃
A data que está no JSON é essa aqui: “1985-05-29T00:00:00”, mas o resultado saiu “28/05/1985”. Sabes o porque disso, e, sem querer abusar muito, mas já abusando, como resolver?
Estranho, porque executando no visual, retorno veio certinho!
Que estranho, tenta dessa forma:
function run(response) {
var parsedResponse = JSON.parse(response);;
var data = formataData(parsedResponse.datanascimento);
return data
}
function formataData(data){
return new Date(data).toLocaleString('pt-Br', { timeZone: 'America/Sao_Paulo' });;
}
Deu “Invalid Date”. Coloquei exatamente o script acima.
Só pra atualizar, resolvi o problema adicionando + 1 ao dia (assim como no mês):
let dataFormatada = padTo2Digits((data2.getDate() + 1)) + "/" + padTo2Digits((data2.getMonth() + 1)) + "/" + data2.getFullYear();
Obrigado, @Jessica_Vaz e @Aline_Camargos !
❤️
@Ricardo_da_Silveira , @Aline_Camargos e @Jessica_Vaz :
Acredito que vocês estejam fazendo conversão de data quando na vdd um simples split com inversão de posição resolveria a situação, não?
O que vcs acham deste JS, fazendo split e simplesmente invertendo a ordem do dia e ano?
function run(responseContact) {
var contact = JSON.parse(responseContact);
var dataNascimento = contact.datanascimento.split("T")l0];
var dataSplit = dataNascimento.split("-");
return dataSplita2] + "/" + dataSplita1] + "/" + dataSplita0];
}
Obs.: o script foi sugerido pela IA do ChatGPT, só fiz alguns ajustes! 😉
Dessa forma ficou bem legal !!!
Massa @Wesley.Oliveira , obrigado!