Ir para conteúdo
Fórum Script Brasil
  • 0

Camparação de data e hora


alexandremanowar

Pergunta

Boa tarde

Eu gostaria de saber se é possível fazer a comparação de horas para saber se uma variável contendo horas é maior que outra, escrevendo de um forma grosseira seria +- isso:

var hora1 = 10:30:01;
var hora2 = 11:12:21;

if(hora1 > hora2)
{
alert("hora 1 é maior que hora 2");
}
else
{
alert("hora 2 é maior que hora 1");
}
Como eu faria isso? A mesma coisa para datas:
var data1 = 01-01-2009;
var data2 = 15-10-2009;

if(data1 > data2)
{
alert("data 1 é maior que data 2");
}
else
{
alert("data 2 é maior que data 1");
}

é possível esse tipo de comparação

Link para o comentário
Compartilhar em outros sites

5 respostass a esta questão

Posts Recomendados

  • 0

Sobre as horas, o que você postou já funciona (se você usar strings, lógico).

Na hora de comparar se uma string é maior que a outra, ele simplesmente compara cada posição da string com a outra.

Então '10:25:13' e '10:25:40' (a seguunda é maior, né?)

1 com 1 = iguais

0 com 0 = iguais

2 com 2 = iguais

5 com 5 = iguais

1 com 4 = OPA, a segunda é maior!

Sobre as datas, é parecido, mas o padrão brasileiro de data não serve, portanto você vai ter que converter no oooutro formato rs, que seria o aaaa-mm-dd, e sendo string novamente.

no padrão brasileiro, as datas 15/04/2009 e 17/03/20009 (a primeira é maior)

1 com 1 = iguais

5 com 7 = OPA, a segunda é maior! FAIL

<script>
function Br2Outro(DataBr) {
var Pts = DataBr.split('-');
return Pts[2]+'-'+Pts[1]+'-'+Pts[0];
}

Br2Outro('30-04-2009') // retorna 2009-04-30

Agora você já pode comparar ^^

no novo padrão, as datas Br2Outro(15/04/2009) e Br2Outro(17/03/20009) (a primeira é maior)

os valores se tornam 2009-04-15 e 2009-03-17

2 com 2 = iguais

0 com 0 = iguais

0 com 0 = iguais

9 com 9 = iguais

0 com 0 = iguais

4 com 3 = OPA, a primeira é maior! WIN

Espero que você tenha atendido ^^

Link para o comentário
Compartilhar em outros sites

  • 0

Fala cara beleza valeu pela atenção

Uma dúvida que não quer calar no caso de outras linguagens como php ou .net eu tenho que converter a string em um timespam para fazer a comparação, no js basta camparar as strings de forma simples que ele já sabe que se trata de hora por exemplo e faz a comparação de uma com a outra? Sem nenhuma conversão?

Link para o comentário
Compartilhar em outros sites

  • 0

Não sei responder a pergunta, mas sei que você pode fazer a mesma coisa.

No PHP,

function Br2Outro($DataBr) {
$Pts = expode('-',$DataBr);
return $Pts[2].'-'.$Pts[1].'-'.$Pts[0];
}

Ps: isso é dúvida pra outra área do fórum lol

Editado por fiote
Link para o comentário
Compartilhar em outros sites

  • 0

Opa beleza

Acho que não fui claro a minha dúvida não era sobre php ou .net, eu disse que em php e .net para esse tipo de comparação é feito uma conversão da string para timespam (para horas por exemplo), logo será que em javascript também o correto não seria fazer uma conversão das string para seu formato correto e depois fazer a comparação?

Link para o comentário
Compartilhar em outros sites

  • 0

Ah tah, agora entendi.

no js basta camparar as strings de forma simples que ele já sabe que se trata de hora por exemplo e faz a comparação de uma com a outra? Sem nenhuma conversão?
Então, ele não 'sabe' que é uma data. Pelo (pouco) que eu sei, o timestamp transforma a data num giga-inteiro, e então compara as datas. Dá no mesmo.

O método-string funciona tão bem quanto.

Porém, se você considera a minha função como uma gambiarra (e ele realmente é, na verdade lol), vamos então ao modo correto.

http://www.w3schools.com/jS/js_obj_date.asp

var myDate=new Date();

myDate.setFullYear(2010,0,14);

var today = new Date();

if (myDate>today)

{

alert("Today is before 14th January 2010");

}

else

{

alert("Today is after 14th January 2010");

}

Vai te dar ainda mais trabalho, na minha opinião.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,3k
    • Posts
      652,3k
×
×
  • Criar Novo...