Somar horas com JS

A função abaixo tem o objetivo de somar duas horas passadas para ela, com a opção de zerar a hora após as 23 horas ou seguir a diante.

  1. function somaHora(hrA, hrB, zerarHora) {
  2.         if(hrA.length != 5 || hrB.length != 5) return "00:00";
  3.        
  4.         temp = 0;
  5.         nova_h = 0;
  6.         novo_m = 0;
  7.  
  8.         hora1 = hrA.substr(0, 2) * 1;
  9.         hora2 = hrB.substr(0, 2) * 1;
  10.         minu1 = hrA.substr(3, 2) * 1;
  11.         minu2 = hrB.substr(3, 2) * 1;
  12.        
  13.         temp = minu1 + minu2;
  14.         while(temp > 59) {
  15.                 nova_h++;
  16.                 temp = temp – 60;
  17.         }
  18.         novo_m = temp.toString().length == 2 ? temp : ("0" + temp);
  19.  
  20.         temp = hora1 + hora2 + nova_h;
  21.         while(temp > 23 && zerarHora) {
  22.                 temp = temp – 24;
  23.         }
  24.         nova_h = temp.toString().length == 2 ? temp : ("0" + temp);
  25.  
  26.         return nova_h + ‘:’ + novo_m;
  27. }

Como usar:

  1. novaHora = somaHora("12:00", "02:27", false);
  2. novaHora -> "14:27"
  3.  
  4. novaHora = somaHora("22:50", "05:10", true);
  5. novaHora -> "04:00"
  6.  
  7. novaHora = somaHora("22:50", "05:10", false);
  8. novaHora -> "28:00"

Número de dias entre duas datas

A função abaixo calcula o número de dias existentes entre duas datas informadas no formato brasileiro, podendo ser facilmente alterado.

  1. function diasIntervalo($dataI, $dataF) {
  2.         $diaI = substr($dataI, 0, 2);
  3.         $mesI = substr($dataI, 3, 2);
  4.         $anoI = substr($dataI, 6, 4);
  5.  
  6.         $diaF = substr($dataF, 0, 2);
  7.         $mesF = substr($dataF, 3, 2);
  8.         $anoF = substr($dataF, 6, 4);
  9.  
  10.         $ini = mktime(0,0,0, $mesI, $diaI, $anoI);
  11.         $fim = mktime(0,0,0, $mesF, $diaF, $anoF);
  12.         $dias = round(($fim$ini) / 86400);
  13.  
  14.         return $dias;
  15. }

Como usar:

  1. $dias = diasIntervalo("01/02/2009", "15/03/2009");
  2. $dias -> 42

Cookies com JS

Olá pessoal, trago mais umas funções úteis para vocês, são funções para trabalhar com cookies de forma mais prática e limpa.

  1. function createCookie(name, value, days) {
  2.     if (days) {
  3.         var date = new Date();
  4.         date.setTime(date.getTime() + (days * 24 * 60 * 60 * 1000));
  5.         var expires = "; expires=" + date.toGMTString();
  6.     }
  7.     else var expires = "";
  8.     document.cookie = name + "=" + value + expires + "; path=/";
  9.     if(days > 0 && readCookie("ckPrimeiroCriado") != "1") document.cookie = "ckPrimeiroCriado=1" + expires + "; path=/";
  10. }
  11.  
  12. function readCookie(name) {
  13.     var nameEQ = name + "=";
  14.     var ca = document.cookie.split(‘;’);
  15.     for (var i = 0; i < ca.length; i++) {
  16.         var c = ca[i];
  17.         while (c.charAt(0) == ‘ ‘) c = c.substring(1, c.length);
  18.         if (c.indexOf(nameEQ) == 0) return c.substring(nameEQ.length, c.length);
  19.     }
  20.     return null;
  21. }
  22.  
  23. function eraseCookie(name) {
  24.     createCookie(name, "", -1);
  25. }

Como usar:

  1. createCookie(‘Exemplo’, ‘Meu primeiro cookie’, 1); // Cria um cookie chamado Exemplo com o valor especificado que expira em 1 dia.
  2. readCookie(‘Exemplo’); // Retorna ‘Meu primeiro cookie’;
  3. eraseCookie(‘Exemplo’); // Destrói o cookie.

Cálculo de Juros com PHP

Abaixo estão duas funções para calcular o valor de parcelas de Juros Simples e Juros Composto:

  1. function jurosSimples($valor, $taxa, $parcelas) {
  2.         $taxa = $taxa / 100;
  3.  
  4.         $m = $valor * (1 + $taxa * $parcelas);
  5.         $valParcela = number_format($m / $parcelas, 2, ",", ".");
  6.  
  7.         return $valParcela;
  8. }
  9.  
  10. function jurosComposto($valor, $taxa, $parcelas) {
  11.         $taxa = $taxa / 100;
  12.  
  13.         $valParcela = $valor * pow((1 + $taxa), $parcelas);
  14.         $valParcela = number_format($valParcela / $parcelas, 2, ",", ".");
  15.  
  16.         return $valParcela;
  17. }

Como usar:

  1. $valorParcelaSimples = jurosSimples(3556.00, 1.20, 6);
  2. $valorParcelaComposto = jurosComposto(3556.00, 1.20, 6);
  3.  
  4. $valorParcelaSimples -> 635,34
  5. $valorParcelaComposto -> 636,64

OBS: Os valores são passados no tipo double. Ex: 3.556,00 = 3556.00

Quebrar uma String JS em pedaços

Essa função serve para quebrar uma string javascript em pedaços de acordo com o caracter separador informado.

  1. function explode(sep, value) {
  2.     var arr = new Array();
  3.     index = -1;
  4.  
  5.     while (value.indexOf(sep) != -1) {
  6.         index++;
  7.         arr[index] = value.substring(0, value.indexOf(sep));
  8.         value = value.substring(value.indexOf(sep) + sep.length);
  9.     }
  10.     index++;
  11.  
  12.     if (value) arr[index] = value;
  13.  
  14.     return arr;
  15. }

Como usar:

  1. var texto = ‘Olá|este|é|um|teste’;
  2. var resultado = explode(‘|’, texto);

resultado[0] -> ‘Olá’
resultado[1] -> ‘este’
resultado[2] -> ‘é’
resultado[3] -> ‘um’
resultado[4] -> ‘teste’