webForumDet fria alternativet

Jämföra datum

13 svar · 392 visningar · startad av @nders

@ndersMedlem sedan juni 200026 914 inlägg
#1

Hej, vänner. :)

Jag har variabler som innehåller år, månad och dag, och vill veta om detta datum är inom den närmaste veckan. Hur gör jag?

intYear = 2004;
intMonth = 2;
intDay = 14;

if (datum_skapat_av_info_ovan <= dagens_datum_plus_7_dagar) {
	// Fjohooo! :)
}
else {
	// Fjähäää! :(
}

Månad 2 är alltså mars för den som undrar. ;)

Mvh och tpf,

J.N.Medlem sedan apr. 20031 660 inlägg
#2

HEJ!

Eftersom jag får datum via sex dropdowns ((yy++mm+dd)x2) löser jag det genom att sätta ihop datumet manuellt, och jämför dem.
Så enkelt är det faktiskt!

pa = new Date(form.pa_ar.value, form.pa_man.value-1, form.pa_dag.value);
form.hid_pa.value = form.pa_ar.value + "-" + form.pa_man.value + "-" + form.pa_dag.value;
av = new Date(form.av_ar.value, form.av_man.value-1, form.av_dag.value);
form.hid_av.value = form.av_ar.value + "-" + form.av_man.value + "-" + form.av_dag.value;
if (av < pa){
	alert("The removal-date must be after the release-date.");
	form.av_dag.focus();
	return (false);
}

lägger in det sammansatta datumet i hidden fields för nästa sida

<input type="hidden" name="hid_av" value=""><input type="hidden" name="hid_pa" value="">
@ndersMedlem sedan juni 200026 914 inlägg
#3

Hur får jag veta om givet datum är inom en vecka från dagens datum?

Kan man bara köra en liten subtraktion med datumobjekten?

J.N.Medlem sedan apr. 20031 660 inlägg
#4

HEJ!

Jag ser nu att jag endast svarade på halva frågan, om ens det :OO

Jag har aldrig behövt prova om javascript-Date fixar minskningar eller ökningar på samma enkla sätt som i VB.
Du får troligen räkna om båda datum till millisekunder och sedan kontrollera om den siffran är större/mindre?

Detta svar har faktiskt inget med mitt tidigare svar att göra, förutom < / > :r

SPiNMedlem sedan mars 20005 832 inlägg
#5
nu = new Date();
omenvecka = new Date( nu.getYear(), nu.getMonth(), nu.getDate()+8 );
inmatat = new Date( "2004", "March", "16" );

if( inmatat < omenvecka ) {
   /* Fjo. */
} else {
   /* Fjä. */
}

:q :)

@ndersMedlem sedan juni 200026 914 inlägg
#6

Tack, SPiN!

Det fjungerar finfint! :bire

@ndersMedlem sedan juni 200026 914 inlägg
#7

Det fjungerar finfint... I IE.
Men i Mozilla fjungerar det inte alls. ;)

Så här ser det ut:

nu = new Date();
dteValidDate = new Date( nu.getYear(), nu.getMonth(), nu.getDate()+8 );
dteThisDate = new Date( 2004, 2, 15 );
if (dteThisDate < dteValidDate) {
	// hit ska vi ju komma!
} else {
	// men vi hamnar här med geckoläsare!
}

Mvh

SPiNMedlem sedan mars 20005 832 inlägg
#8
nu = new Date();
dteValidDate = new Date( nu.getYear(), nu.getMonth()+1, nu.getDate()+8 );
dteThisDate = new Date( 2004, 2, 15 );
if (dteThisDate < dteValidDate) {
	// hit ska vi ju komma!
} else {
	// men vi hamnar här med geckoläsare!
}

Månad ska tydligen plussas på med 1 för att få nuvarande månad, enligt standard. Annars vet jag inte varför det inte fungerar - det följer standard till punkt och pricka.

@ndersMedlem sedan juni 200026 914 inlägg
#9

Hmm. Knepigt. Så här ser datumen ut:

Mozilla Fajerbörd skrev:

dteValidDate: Wed Mar 19 0104 00:00:00 GMT+0100
dteThisDate: Mon Mar 15 2004 00:00:00 GMT+0100

Internet Explorer skrev:

dteValidDate: Fri Mar 19 00:00:00 UTC+0100 2004
dteThisDate: Mon Mar 15 00:00:00 UTC+0100 2004

Varför blir det fel år när jag använder Firebird???

nikoMedlem sedan juni 20022 415 inlägg
#10

Varför blir det fel år när jag använder Firebird???

Därför att FireBird returnerar "104" (antal år sedan 1900) i new Date().getYear(). Medan IE inte gör det.

@ndersMedlem sedan juni 200026 914 inlägg
#11

Jo, men frågan är varför. Verkar extremt kass.

Hur gör jag då detta script oberoende av om man använder IE eller geckoläsare?

dectgapMedlem sedan sep. 20021 542 inlägg
#12

Använd getFullYear() istället.
getYear() ska inte användas längre:
http://devedge.netscape.com/library/manuals/2000/javascript/1.5/reference/date.html#1194138

nikoMedlem sedan juni 20022 415 inlägg
#13

/red: Too late.

@ndersMedlem sedan juni 200026 914 inlägg
#14

Jamen sådärja! :D

Tack för hjälpen SPiN, niko och dectgap! (y)

Mvh

Genererad på 377 ms · cache AV · v20260730165559-full.f96bc7eb