datums vergelijken

Status
Niet open voor verdere reacties.

spelbreker

Gebruiker
Lid geworden
6 sep 2011
Berichten
24
ik heb een script nodig waar ik al 2 dagen probeer te maken en zoek op internet.

ik wil 2 datum in javascript vergelijken met elkaar.

als datum1 over datum2 is moet die een melding geven.

date() is ingesteld voor jaar, maand, date, uur, minuut, seconden
 
Helpt dit niet? Want serieus, de 1e hit heeft het antwoord...

[JS]var datum1 = new Date(2011, 9, 5); // gisteren: 2011, maand #9 (= oktober, telt vanaf 0) en dag 5
var datum2 = new Date(); // nu


if(datum1.getTime() > datum2.getTime())
{
// datum 1 is groter dan datum 2 (dus: meer secondes = later)
}[/JS]
 
Laatst bewerkt:
als datum1 over datum2 is moet die een melding geven.
Zou die daarom niet net andersom gewenst geweest hebben willen zijn? ;)
[JS]var datum1 = new Date(); // nu
var datum2 = new Date(2011, 9, 5); // gisteren: 2011, maand #9 (= oktober, telt vanaf 0) en dag 5

if(datum1.getTime() > datum2.getTime())
{
// doe iets als datum 1 groter is dan datum 2 (dus: meer secondes = later)
document.write('U bent te laat, jammer!');
}[/JS]
 
ja klopt dat had ik zelf ook al gezien. ik had dat ook al even veranderd
 
ik heb een ander probleem er nog mee. ik wil de tijd invullen in een variabele. is dat mogelijk. want bij mij is het tot heden nog niet gelukt:confused:

[JS]

var variabele = '2011, 9, 5'

var datum1 = new Date(); // nu
var datum2 = new Date(variabele); // gisteren: 2011, maand #9 (= oktober, telt vanaf 0) en dag 5

if(datum1.getTime() > datum2.getTime())
{
// doe iets als datum 1 groter is dan datum 2 (dus: meer secondes = later)
document.write('U bent te laat, jammer!');
}[/JS]
 
Nee, het Date object verwacht bij de constructie losse parameters, niet een string.

Je kan dit op verschillende manieren oplossen:


[js]var variabele = '2011, 9, 5';

var y, m, d, splitsies = variabele.split(', ');

y = splitsies[0];
m = splitsies[1];
d = splitsies[2];

var datum = new Date(y, m, d);[/js]

maar misschien netter is om zelf iets te bouwen en apply te gebruiken (overigens moet je hier eens kijken als je van obscure Javascript houdt - het antwoord staat daar ook):

[js]var tijdInString = '2011, 9, 5';

var datum = new Date(Date.UTC.apply(null, tijdInString.split(', ')));[/js]
 
ik heb dit nu in elkaar gezet maar het werkt niet echt wat heb ik fout gedaan? kunnen jullie er licht op werpen:o

[JS]
function test()
}

var variabele = '2011,09,07,11,34,15 ';

var y, m, d, h, mi, s, splitsies = variabele.split(', ');

y = splitsies[0];
m = splitsies[1];
d = splitsies[2];
h = splitsies[3];
mi= splitsies[4];
s = splitsies[5];


var datum1 = new Date(); // nu
var datum2 = new Date(y, m, d, h, mi, s); // gisteren: 2011, maand #9 (= oktober, telt vanaf 0) en dag 5

t=setTimeout('test()',500);

if(datum1.getTime() > datum2.getTime())
{

// doe iets als datum 1 groter is dan datum 2 (dus: meer secondes = later)
alert('u bent te laat');
//document.write('U bent te laat, jammer!');
}
else
{
alert('u bent te vroeg');
//document.write('u bent te vroeg');}
}

}
[/JS]
 
Laatst bewerkt:
Ik zie nergens de functie test(), die getimedOut wordt. Is die er wel?
 
[JS]var variabele = '2011,09,07,11,34,15 ';

.split(', ');[/JS]
als je split op komma spatie moet je in je var name ook wel komma-spatie als delimeters gebruiken... of andersom ;)


Daarnaat heeft setTimeout als 1e parameter een functie, niet een string.





[edit]
overigens, volgens mij moet je Numbers als parameters gebruiken, en .split() maakt er alleen strings van. Dus eventjes door parseInt halen.
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan