Jump to content
Álef Henrique

Data não aceita dias abaixo do dia 20

Recommended Posts

Olá! Estou com um pequeno problema, é o seguinte, quando tento colocar uma data abaixo do dia 20 na seguinte função abaixo (Parte em NEGRITO) ela não funciona. 

O back-end anterior fez da seguinte forma:
(Dexei um arquivo com o código todo em anexo.)

function getTimeRemaining(endtime){
  var t = Date.parse(endtime) - Date.parse(new Date());
  return {
    'total': t,
    'days': Math.floor( t / (1000 * 60 * 60 * 24) ),
    'hours': Math.floor( (t / (1000 * 60 * 60) ) % 24 ),
    'minutes': Math.floor( (t / 1000 / 60) % 60 )
  };
}
// City Selector
    $(function () {
      var events_informations = {
        'belo-horizonte': {
          'title': 'Belo Horizonte',
          'date': '08/07/2017',
          'place': 'Dayrell Hotel - a partir das 8:00',
          'imagePath': 'img/cities/bh/belo-horizonte-2.jpg',
          'btnBuyNow': 'https://www.sympla.com.br/',
          'btnDestinePage': '/belo-horizonte',
          'mapPlace': {lat: -19.9226186, lng: -43.9401089},
          'datetime': 'June 20 2017 8:30:00 GMT-03:00'
        }
      };
function getNextDestines(events_informations) {
  var nextDestines = [];
  var keys = Object.keys(events_informations);
  for (var i = 0; i < keys.length; i++) {
    var today = new Date();
    var date = new Date(events_informations[keys]['datetime']);
    if (date.getTime() > today.getTime() && date.getDate() > today.getDate()) {
      nextDestines = [events_informations[keys], events_informations[keys[i+1]], events_informations[keys[i+2]], events_informations[keys[i+3]]];
      break;
    }
  }
  return nextDestines;
};

Será que vocês podem me ajudar nessa?
Muito obrigado!

main.js

Edited by Gabriel Heming
adicionar marcação de código

Share this post


Link to post
Share on other sites

troque:


 

 'datetime': 'June 20 2017 8:30:00 GMT-03:00'

por:

 'datetime': new Date(2017,5,20,8,30).toISOString()

e ai você troca os números.

Share this post


Link to post
Share on other sites

Obrigado pela ajuda Willian, mas infelizmente ainda continua dando o erro.
Quando troco a data do dia para alguma data abaixo do dia 20 some. Eu queria colocar dia 8. você sabe oque pode ser?

Ficou da seguinte forma:
 

// City Selector
    $(function () {
      var events_informations = {
        'belo-horizonte': {
          'title': 'Belo Horizonte',
          'date': '08/07/2017',
          'place': 'Dayrell Hotel - a partir das 8:00',
          'imagePath': 'img/cities/bh/belo-horizonte-2.jpg',
          'btnBuyNow': 'https://www.sympla.com.br/',
          'btnDestinePage': '/belo-horizonte',
          'mapPlace': {lat: -19.9226186, lng: -43.9401089},
          'datetime': new Date(2017,7,8,8,30).toISOString()
        }

 

Edited by Gabriel Heming
adicionar marcação de código

Share this post


Link to post
Share on other sites

Não.. meio difícil dizer.. pode ser que não tenha dados para trazer.

 

aparece algo no console de erros? Ctrl + Shift +J no Firefox ou Chrome?

Share this post


Link to post
Share on other sites

Tenta ver se os formatos dessas datas estão batendo:

var today = new Date();
var date = new Date(events_informations[keys]['datetime']);

vai saber né rsrs...

Tenta tirar o break e colocar um else também:

if (date.getTime() > today.getTime() && date.getDate() > today.getDate()) {
      nextDestines = [events_informations[keys], events_informations[keys[i+1]], events_informations[keys[i+2]], events_informations[keys[i+3]]];
      break;
    }

Boa sorte!!

Share this post


Link to post
Share on other sites

Infelizmente ainda não deu, vou postar o código todo pra vocês dar uma olhada. 
Me parece que eu entendi um pouco oque o web anterior fez, me parece que tinha mais unidades, outras cidades e ele ia mudando de acordo com o tempo. Agr já não aceita abaixo do dia 25, será como posso resolver este problema?
Segue o Código: 

 

var map;
var marker;
(function($){
  $(document).ready(function (){

    // Scrool button
    $('a.see-btn').click(function(){
      var topCount = ( $ ( $.attr(this, 'href') ).offset().top ) +1;
      $('html, body').animate({ scrollTop: topCount }, 1000);
      return false;
    });

    $('a.scroll-btn').click(function(){
      var topCount = ( $ ( $.attr(this, 'href') ).offset().top ) -150;
      $('html, body').animate({ scrollTop: topCount }, 1000);
      return false;
    });

    //Tooltips
    $(function () {
      $('[data-toggle="tooltip"]').tooltip()
    });

    // City Selector
    $(function () {
      var events_informations = {
        'belo-horizonte': {
          'title': 'Belo Horizonte',
          'date': '21/06/2017',
          'place': 'Dayrell Hotel - a partir das 8:30',
          'imagePath': 'img/cities/bh/belo-horizonte-2.jpg',
          'btnBuyNow': 'https://www.sympla.com.br/',
          'btnDestinePage': '/belo-horizonte',
          'mapPlace': {lat: -19.9226186, lng: -43.9401089},
          'datetime': 'july 25 2017 00:00 GMT-03:00'
        }
      };

      $('.btn-city').on('click', function() {
        var city = $(this).attr('data-id');
        $('#event-city').html(events_informations[city]['title']);
        $('#event-date').html(events_informations[city]['date']);
        $('#event-place').html(events_informations[city]['place']);
        $('.destinations').css('background-image', 'url("'+events_informations[city]['imagePath']+'")');
        $('#btnBuyNow').attr('href', events_informations[city]['btnBuyNow']);
        $('#btnDestinePage').attr('href', events_informations[city]['btnDestinePage']);
        map.setCenter(events_informations[city]['mapPlace']);
        marker.setPosition(events_informations[city]['mapPlace']);
        if ( events_informations[city]['mapZoom'] ){
          map.setZoom(events_informations[city]['mapZoom']);
          marker.setPosition({lat: -1, lng: -1});
        }
        else{
          map.setZoom(15);
        };
      });

      var nextDestines = getNextDestines(events_informations);

      initializeClock(nextDestines);

      var timeinterval = setInterval(function(){
        initializeClock(nextDestines);
      },30000);

    });

    // Scrool Navbar
    $(window).scroll(function(){
      var vh = $('#hero + *').offset().top;
      var scroll_top = $(window).scrollTop();
      var jqObject = $('.navbar')
      if(scroll_top > vh){
        jqObject.removeClass('top-position');
      } else{
        $('.navbar-default').addClass('top-position');
      }
    });

  });
})(jQuery);

function getTimeRemaining(endtime) {
  var t = Date.parse(endtime) - Date.parse(new Date());
  return {
    'total': t,
    'days': Math.floor(t / (1000 * 60 * 60 * 24)),
    'hours': Math.floor((t / (1000 * 60 * 60)) % 24),
    'minutes': Math.floor((t / 1000 / 60) % 60)
  };
}

function initializeClock(next) {
  for (let i = 0 ; i < next.length ; i++) {
    if (i == 0) {
      var t = getTimeRemaining(next[0].datetime);
      $('.nextCity').text(next[0].title);
      $('.nextCityPage').attr('href', next[0].btnDestinePage);
      $('#futureDestinationBtn').attr('href', next[0].btnBuyNow);
      $('#nextDays').text(t.days);
      $('#nextHours').text(t.hours);
      $('#nextMinutes').text(t.minutes);
      if (t.days > 0) {
        $('#nextDaysNavTop').html('o evento vai acontecer em <strong>'+ t.days +'</strong> dias');
      }
      else {
        $('#nextDaysNavTop').html('<strong>amanhã</strong>');
      }
    }
    else {
      var t = getTimeRemaining(next[i].datetime);
      console.log(next[i].title);
      $('#commingSoonCity'+i).text(next[i].title);
      $('#commingSoon'+i).text(t.days);
      $('#commingSoonCityPage'+i).attr('href', next[i].btnDestinePage);
    }
  }
};

function getNextDestines(events_informations) {
  var nextDestines = [];
  var keys = Object.keys(events_informations);
  for (var i = 0; i < keys.length; i++) {
    var today = new Date();
    var date = new Date(events_informations[keys[i]]['datetime']);
    if (date.getTime() > today.getTime() && date.getDate() > today.getDate()) {
      nextDestines = [events_informations[keys[i]], events_informations[keys[i+1]], events_informations[keys[i+2]], events_informations[keys[i+3]]];
      break;
    }
  }
  return nextDestines;
};

 

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

  • Similar Content

    • By ELT_Yuken
      Bom, eu estou aprendendo js pelo celular da minha mãe, eu gostaria de saber como faço para criar botões que repetem uma função até eu tirar o dedo dele
    • By Eli Lopes
      O código em JS abaixo alimenta o combobox "programas" (html <select id="programas">) com uma lista em Json (lista-regiao-programas.json) de acordo com a escolha no combo "regioes" (html <select id="regioes">).
       
      Mas como eu faço para alimentar o combobox "municípios" (html <select id="municipios">) baseado no combo em "regiões" com a lista Json "combox-municipios.json" ?
       
      esolhe 1 programa -> alimenta regiões -> escolhe 1 região -> alimenta "município" (3 select dropdwon em cascata / aninhados)...
       
      HTML ->
      <div class="form-group"> <!-- dropdown Regiões --> <label for="regioes">Região de integração</label> <select id="regioes"> <option value=""></option> </select> </div> <div class="form-group"> <!-- dropdown Programas --> <label for="programas">Programa desenvolvido</label> <select id="programas"></select> </div> JS JSON ->
      $(document).ready(function(){ $.getJSON('SIGPLAM2/javaScript/lista-regiao-programas.json', function(data){ var items = []; var options = '<option value="">escolha uma região</option>'; $.each(data, function(key, val){ options += '<option value="' + val.nome + '">' + val.nome + '</option>'; }); $("#regioes").html(options); $("#regioes").change(function(){ var options_programas = ''; var str = ""; $("#regioes option:selected").each(function(){ str += $(this).text(); }); $.each(data, function(key, val){ if(val.nome == str){ $.each(val.cidades, function(key_city, val_city){ options_programas += '<option value="' + val_city + '">' + val_city + '</option>'; }); } }); $("#programas").html(options_programas); }).change(); }); });  
    • By xdxddxd
      Galera neste site aqui tem umas setas em um accordion, e eu gostaria de saber como faço para elas se movimentarem a cada clique.
      se alguem conseguir algum link com tutorial ou me passar algum script eu sou imensamente agradecido.
      estou usando o accordion padrão do bootstrap 4+
      Clique neste: Exemplo
    • By Acir190
      Olá,
      Tenho um script para enviar dados para uma tabela do Google Spreadsheet mas nao consigo faze-la gravar uma das variáveis. 
       
      function doGet(e){
        var ss = SpreadsheetApp.openByUrl("https://docs.google.com/spreadsheets/d/1QVJWghiG5TJh1UhQLiOujOFc1KBNGy82v59Rm5zdD4/edit#gid=0");
        //Give your Sheet name here
        var sheet = ss.getSheetByName("Folha1");
        insert(e,sheet);
      }
      function doPost(e){
        var ss = SpreadsheetApp.openByUrl("Your Spread Sheet URL");
        //Give your Sheet name here
        var sheet = ss.getSheetByName("Folha1");
        insert(e,sheet);
      }
      function insert(e,sheet){
       
        // reciving scanned data from client i.e android app
        var sdata = e.parameter.sdata;
        
        var date = new Date()
       
        Var acesso = 'E' //Não consigo enviar esta variável para a planilha

        sheet.appendRow([date,sdata,acesso]);
        
      }
    • By AlanB.
      Boa tarde galera, tudo bem? estou tentando aprender javascript, mas o que eu preciso fazer eu ainda não sei.
       
      Eu tenho o meu menu do site e logo abaixo tenho a section serviços e a section produtos. Eu queria que inicialmente o background do menu fosse azul, mas quando a pessoa desse um scroll e chegasse na section serviços, o background do menu alterasse a cor. Alguem pode me ajudar? 
×

Important Information

Ao usar o fórum, você concorda com nossos Terms of Use.