Updating javascript

1

I'm developing an accountant for Black Week. However, I have a question: will the accountant even change the date when it arrives on the 21st? Or is it better to create 2 files and change via FTP on day 21 at 0:00? (I'm a beginner, so the doubt)

<body>
<div id="dias"></div>
<div id="tempo">
    <a id="horas"></a>
    <a id="minutos"></a>
    <a id="segundos"></a>
</div>
<script>
var hoje = new Date().getDate();
var inicioBlackWeek = 20;

// Definindo a data final
if (hoje <= inicioBlackWeek)
    var contadorData = new Date("Nov 20, 2017 23:59:59").getTime();
else
    var contadorData = new Date("Nov 26, 2017 23:59:59").getTime();

// Atualizando a contagem decrescente a cada 1 segundo
var x = setInterval(function() {

    // Recebendo a data e hora atual
    var now = new Date().getTime();

    // Encontrando a distância entre agora e a data final
    var distance = contadorData - now;

    // Cálculos de tempo por dias, horas, minutos e segundos
    var dias = Math.floor(distance / (1000 * 60 * 60 * 24));
    var horas = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
    var minutos = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
    var segundos = Math.floor((distance % (1000 * 60)) / 1000);

    // Retornando resultados
    if (hoje <= inicioBlackWeek) {
        document.getElementById("dias").innerHTML = "<font style = 'color: red;'>Faltam apenas<br /><font style = 'font-size: 100pt'>" + dias + " dias</font></font>";
        document.getElementById("segundos").innerHTML = +segundos + "s<br /><font style = 'font-size 50pt'>para a Black Week!</font>";
    } else {
        document.getElementById("dias").innerHTML = "<font style = 'color: red;'>Restam apenas<br /><font style = 'font-size: 100pt'>" + dias + " dias</font></font>";
        document.getElementById("segundos").innerHTML = +segundos + "s<br /><font style = 'font-size 50pt'>de Black Week!</font>";
    }


    document.getElementById("horas").innerHTML = "e " + horas + "h ";
    document.getElementById("minutos").innerHTML = +minutos + "m ";


    // Se a contagem decrescente terminar, mudará a escrita das divs
    if (distance < 0) {
        clearInterval(x);
        document.getElementById("dias").innerHTML = "<font style = 'color: red'>FINALIZADO</font>";
        document.getElementById("tempo").innerHTML = "";
    }
}, 1000);
</script>

    
asked by anonymous 30.10.2017 / 18:16

1 answer

3

Your question O contador alterará mesmo a data quando chegar dia 21?

My answer Com certeza o contador vai alterar a data no dia 21.

To check it is very simple, just assume var hoje=21; , see

//supondo hoje ser dia 21
    var hoje=21;
    var inicioBlackWeek = 20;

    // Definindo a data final
    if (hoje <= inicioBlackWeek){

        var contadorData = new Date("Nov 20, 2017 23:59:59").getTime();
        //supondo hoje ser antes do dia 20
        console.log("hoje dia 19 contadorData => Nov 20, 2017 23:59:59");
        
    }else{

        var contadorData = new Date("Nov 26, 2017 23:59:59").getTime();
        //supondo hoje ser dia 21
        console.log("hoje dia 21 contadorData => Nov 26, 2017 23:59:59");
        
    }

Using the entire code

Par checking is very simple:

Make var hoje equal to 21.

var hoje = 21;

change this line var distance = contadorData - now;

for var distance = contadorData - (now+(86400*(hoje-new Date().getDate())*1000));

  

If the variable var hoje is equal to 21 and the difference between var hoje and the var contadorData variable gives 5 days, there was such a change that you doubted if it would change.      

With this change you will see that the text Faltam apenas will change to Restam apenas which is the else check condition if (today < = startBlackWeek) {

See it working.

var hoje = new Date().getDate();

	//para que após o dia 21 de novembro não seja necessário mudar para 22, 23 etc...
	var mes = (new Date().getMonth())+1;
	if (mes==10 || hoje<21){
		hoje = 21;
	}
	
	
	var inicioBlackWeek = 20;
	
	// Definindo a data final
	if (hoje <= inicioBlackWeek)
	var contadorData = new Date("Nov 20, 2017 23:59:59").getTime();
	else
	var contadorData = new Date("Nov 26, 2017 23:59:59").getTime();
	
	// Atualizando a contagem decrescente a cada 1 segundo
	var x = setInterval(function() {
	
	// Recebendo a data e hora atual
	var now = new Date().getTime();
	
	// Encontrando a distância entre agora e a data final
	var distance = contadorData - (now+(86400*(hoje-new Date().getDate())*1000));
	
	// Cálculos de tempo por dias, horas, minutos e segundos
	var dias = Math.floor(distance / (1000 * 60 * 60 * 24));
	var horas = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
	var minutos = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60));
	var segundos = Math.floor((distance % (1000 * 60)) / 1000);
	
	// Retornando resultados
	if (hoje <= inicioBlackWeek) {
	    document.getElementById("dias").innerHTML = "<font style = 'color: red;'>Faltam apenas<br /><font style = 'font-size: 100pt'>" + dias + " dias</font></font>";
	    document.getElementById("segundos").innerHTML = +segundos + "s<br /><font style = 'font-size 50pt'>para a Black Week!</font>";
	} else {
	    document.getElementById("dias").innerHTML = "<font style = 'color: red;'>Restam apenas<br /><font style = 'font-size: 100pt'>" + dias + " dias</font></font>";
	    document.getElementById("segundos").innerHTML = +segundos + "s<br /><font style = 'font-size 50pt'>de Black Week!</font>";
	}
	
	
	document.getElementById("horas").innerHTML = "e " + horas + "h ";
	document.getElementById("minutos").innerHTML = +minutos + "m ";
	
	
	// Se a contagem decrescente terminar, mudará a escrita das divs
	if (distance < 0) {
	    clearInterval(x);
	    document.getElementById("dias").innerHTML = "<font style = 'color: red'>FINALIZADO</font>";
	    document.getElementById("tempo").innerHTML = "";
	}
	}, 1000);
<div id="dias"></div>
<div id="tempo">
    <a id="horas"></a>
    <a id="minutos"></a>
    <a id="segundos"></a>
</div>
  

No need to explain that by 21/11 there will always be 5 days to go.

    
31.10.2017 / 01:23