Ir ao conteúdo

Posts recomendados

Postado

Olá,

Estou criando um contador regressivo com JS ,ele tem que fazer isso com 30 dias da data do dia (ou do que foi selecionado no calendário). Porém só consegui calcular um ano da data do dia. Minha maior dificuldade é com a virada do mês (fazer passar de dezembro para janeiro) e também não estou conseguindo fazer ele pegar a data do calendário (ele não faz esse dinamismo de modificar e atualizar na hora). Segue os códigos:

 

Estou usando como modelo visual esse contador counting down to.

const capturaTempoHoje = new Date();
const dia = capturaTempoHoje.getDate();
const mes = capturaTempoHoje.getMonth() + 1
const ano = capturaTempoHoje.getFullYear() + 1;
const diaMesAno = ano + '-' + mes + '-' + dia;

document.querySelector('#calendario').value = diaMesAno;

const newyeartime = new Date(`${diaMesAno} 00:00:00`);

const atualizarContador = () => {
    let currentTime = new Date()
    let difference = newyeartime - currentTime;
    let dias = Math.floor(difference / 1000 / 60 / 60 / 24);
    let horas = Math.floor(difference / 1000 / 60 / 60) % 24;
    let minutos = Math.floor(difference / 1000 / 60) % 60;
    let segundos = Math.floor(difference / 1000) % 60;
    
    console.log({ dias, horas, minutos, segundos })
}

setInterval(atualizarContador, 1000)

 

Postado

@Lucas R.Bom amigo você pode fazer isso criando uma data nova pegando como parametro o timestrap da data atual e adicionando 30 dias nela em milisegundos.

 

        const newyeartime = new Date(new Date().getTime() + 2592000000);

        const atualizarContador = () => {
            let currentTime = new Date()
            let difference = newyeartime - currentTime;
            let dias = Math.floor(difference / 1000 / 60 / 60 / 24);
            let horas = Math.floor(difference / 1000 / 60 / 60) % 24;
            let minutos = Math.floor(difference / 1000 / 60) % 60;
            let segundos = Math.floor(difference / 1000) % 60;
            
            console.log({ dias, horas, minutos, segundos })
        }

        setInterval(atualizarContador, 1000);

 

Você pode fazer a conversão da data do calendario selecionado pelo usuário em timestrap e depois fazer o calculo em milesegundos para adição na data atual e fazer o timer.

 

Nesse exemplo eu fiz uma contagem para o "reveillon".

 

        const dataAtual = new Date();
        const newyeartime = new Date(dataAtual.getTime() + (new Date('2020-12-31T24:00:00').getTime() - dataAtual.getTime()));

        const atualizarContador = () => {
            let currentTime = new Date()
            let difference = newyeartime - currentTime;
            let dias = Math.floor(difference / 1000 / 60 / 60 / 24);
            let horas = Math.floor(difference / 1000 / 60 / 60) % 24;
            let minutos = Math.floor(difference / 1000 / 60) % 60;
            let segundos = Math.floor(difference / 1000) % 60;
            
            console.log({ dias, horas, minutos, segundos })
        }

        setInterval(atualizarContador, 1000);

 

Crie uma conta ou entre para comentar

Você precisa ser um usuário para fazer um comentário

Criar uma conta

Crie uma nova conta em nossa comunidade. É fácil!

Crie uma nova conta

Entrar

Já tem uma conta? Faça o login.

Entrar agora

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...