AlbertoVentura.Dev

Trabalhando com Datas – Angular

Como pegar a data de hoje:

  hoje = new Date() 
    // Wed Nov 03 2021 00:32:40 GMT-0300 (Horário Padrão de Brasília)
  hojeEmMilissegundos = new Date().getTime() 
    // 1635910390635 timestamp da variável hoje

Montando seu objeto Date com datas externas:

  hora = 12;
  minuto = 22;  
  dia = 13;
  mes = 6;
  ano = 1999;
  Data = new Date(this.ano, this.mes-1, this.dia, this.hora, this.minuto); 
    // Sun Jun 13 1999 12:22:00 GMT-0300 (Horário Padrão de Brasília)

  // O campo mês funciona como um array, então lembre-se de subtrair sempre -1 para obter o mês correto, por exemplo junho seria 5.
  // Para fins de controle, monte constantes para evitar magic numbers.

Outra forma de montar seu date, é a partir de timestamp:

  timeStampX = '1235912694912';
  outroDia = new Date(this.timeStampX) 
    // Sun Mar 01 2009 10:04:54 GMT-0300 (Horário Padrão de Brasília)

Montando a partir de uma String:

  aDate = "31-03-2015";
  myDate = this.aDate.split("-"); // array de strings
  newDate = new Date( parseInt(this.myDate[2]), parseInt(this.myDate[1]) - 1, parseInt(this.myDate[0])); 
    // Tue Mar 31 2015 00:00:00 GMT-0300 (Horário Padrão de Brasília)
  

Inserindo dados a partir de uma Data formada

  outroDia = new Date(1235912694912); 
    // Sun Mar 01 2009 10:04:54 GMT-0300 (Horário Padrão de Brasília)

  outroDiaComHoraModificada = new Date(this.outroDia).setHours(12) 
    // Retorna um timestamp atualizado

  outroHorario = new Date(this.outroDiaComHoraModificada); 
    // Sun Mar 01 2009 12:04:54 GMT-0300 (Horário Padrão de Brasília)

  // É possível fazer modificações em outros campos como ano, dia, mês, minuto e outros!

  // outra forma:
  hoje = new Date(); 
    // Wed Nov 03 2021 02:25:46 GMT-0300 (Horário Padrão de Brasília)
  depoisDeAmanhaMili = new Date().setDate(this.hoje.getDate() + 2);
  depoisDeAmanha = new Date(this.depoisDeAmanhaMili); 
    // Fri Nov 05 2021 02:25:46 GMT-0300 (Horário Padrão de Brasília)

Obtendo o momento agora para validações:

  agoraEmMilissegundos = Date.now(); 
    // 1635911694912 timestamp do momento agora
  agoraDate = new Date(this.agoraEmMilissegundos); 
    // Wed Nov 03 2021 00:54:54 GMT-0300 (Horário Padrão de Brasília)

Obtendo dados a partir de um objeto Date:

  outroDia = new Date(1235912694912) 
    // Sun Mar 01 2009 10:04:54 GMT-0300 (Horário Padrão de Brasília)
  hora = new Date(this.outroDia).getHours(); // 10
  minuto = new Date(this.outroDia).getMinutes(); // 4
  segundo = new Date(this.outroDia).getSeconds(); // 54
  dia = new Date(this.outroDia).getDate(); // 1
  mes = new Date(this.outroDia).getMonth()+1; 
    // 3, lembre-se que os meses funcionam como array, sempre confira o valor!
  ano = new Date(this.outroDia).getFullYear(); // 2009

Validando duas datas, entre maior e menor:

  diaX = new Date(1235912694912); 
    // Sun Mar 01 2009 10:04:54 GMT-0300 (Horário Padrão de Brasília)
  diaY = new Date(1465912694912); 
    // Tue Jun 14 2016 10:58:14 GMT-0300 (Horário Padrão de Brasília)
  

  validarDiaMaior(){

    let diaMaior;
    if(this.diaX > this.diaY){
      diaMaior = this.diaX;
    }else{
      diaMaior = this.diaY;
    }

    return diaMaior; 
      // Tue Jun 14 2016 10:58:14 GMT-0300 (Horário Padrão de Brasília);
  }
  

Obtendo a maior data e menor data de um array de datas:

  datas = [
    1235912694912, 
      // Sun Mar 01 2009 10:04:54 GMT-0300 (Horário Padrão de Brasília)
    1465912694912, 
      // Tue Jun 14 2016 10:58:14 GMT-0300 (Horário Padrão de Brasília)
    1365912694912, 
      // Sun Apr 14 2013 01:11:34 GMT-0300 (Horário Padrão de Brasília)
    1362212694912, 
      // Sat Mar 02 2013 05:24:54 GMT-0300 (Horário Padrão de Brasília)
    1344212694912, 
      // Sun Aug 05 2012 21:24:54 GMT-0300 (Horário Padrão de Brasília)
  ];
  min = Math.min(...this.datas);
  max = Math.max(...this.datas);
  menorData = new Date(this.min); 
    // Sun Mar 01 2009 10:04:54 GMT-0300 (Horário Padrão de Brasília)
  maiorData = new Date(this.max); 
    // Tue Jun 14 2016 10:58:14 GMT-0300 (Horário Padrão de Brasília)

Obtendo a porcentagem entre duas datas comparado com hoje:

  start = new Date(1989, 0, 1).getTime(); 
    // Sun Jan 01 1989 00:00:00 GMT-0200 (Horário de Verão de Brasília) em Timestamp
  end = new Date(2089, 0, 1).getTime(); 
    // Sat Jan 01 2089 00:00:00 GMT-0300 (Horário de Verão de Brasília) em Timestamp
  today = new Date().getTime(); 
    // Wed Nov 03 2021 03:04:05 GMT-0300 (Horário Padrão de Brasília) em Timestamp
  p = Math.round(((this.today - this.start) / (this.end - this.start)) * 100) + '%'; // 33%

Espero ter ajudado!

Leave a Comment

Your email address will not be published. Required fields are marked *