script voor aantal jaren sinds datum

Status
Niet open voor verdere reacties.

tvoorbij

Gebruiker
Lid geworden
20 apr 2005
Berichten
65
Hallo,

Ik ben een leek in javascripts maar snap soms wel de basis van een script. Omdat ik in een tekst een regel heb met iets in de trent van "zij werkt al 25 jaar bij baas x" en deze niet ieder jaar wil veranderen naar "26", "27" etc heb ik dit script bedacht:

<script language="JavaScript" type="text/javascript">
var d=new Date();
yr=d.getFullYear();
if (yr!=1998)
document.write(+yr-1984);
</script>

Alleen wil ik het nog zo hebben dat ik vanaf een datum de jaren krijg. Zeg even in dit geval vanaf 28-06-1984. Dus vanaf deze dag is het 25 en voor deze dag 24. Het script moet in de tekst gebruikt worden voor een paar van deze voorbeelden. Ik heb al zitten "rommelen" met scripts die "aantal dagen sinds" aangeven, ik deel dit dan door 365 maar dat is nog steeds niet exact. Ook wil ik het script zo kort mogelijk houden. Heeft iemand een idee?
Bovenstaand script gebruik ik trouwens voor de © van de pagina's.

Bij voorbaat dank,

Met vrioendelijke groet,

Theo
 
Misschien kun je dit doen:

PHP:
<script type="text/javascript">

var startdate = Date.parse("January 27, 1984"); // Zet het aantal milliseconden sinds je begindatum in een variabele
var enddate = Date.parse(new Date()); // doe het zelfde met dit moment
var ms = enddate - startdate; // bereken het verschil
var years = Math.floor(ms / 1000 / 60 / 60 / 24 / 365.24); // deel het verschil door 1000 (seconden), 60 (minuten), 60 (uren), 24 (dagen) en 365.24 (jaren (ja, er zitten 365.24 dagen in een jaar))
document.write("Je werkt al " + years + " jaar bij ons!"); // schrijf het aantal jaren naar het scherm

</script>
 
365.2425 dagen als je het nog niet precies genoeg vindt :p

Dit kan trouwens net wat efficienter
Code:
var enddate = Date.parse(new Date())

dit is ~ een factor 6 sneller :rolleyes:
Code:
var enddate = new Date().getTime

Maakt niet echt uit aangezien het hier om onmeetbare tjiden gaat zolang je het maar één keer uitvoert :p
 
Ik kan niet anders dan je op beide punten gelijk geven :thumb:
 
@ErikBooy007, whops ja, daar moet je natuurlijk wel die value van de huidige jaar-datum-tijd ding afhalen. :p

:thumb:
 
Misschien kun je dit doen:

PHP:
<script type="text/javascript">

var startdate = Date.parse("January 27, 1984"); // Zet het aantal milliseconden sinds je begindatum in een variabele
var enddate = Date.parse(new Date()); // doe het zelfde met dit moment
var ms = enddate - startdate; // bereken het verschil
var years = Math.floor(ms / 1000 / 60 / 60 / 24 / 365.24); // deel het verschil door 1000 (seconden), 60 (minuten), 60 (uren), 24 (dagen) en 365.24 (jaren (ja, er zitten 365.24 dagen in een jaar))
document.write("Je werkt al " + years + " jaar bij ons!"); // schrijf het aantal jaren naar het scherm

</script>

Hartelijk dank voor je hulp. Dit lukt prima zo! Begrijp niet wat Glest bedoelt met "Dit kan trouwens net wat efficienter". Zal wel een grapje zijn over het minimale verschil?

Met vriendelijke groet,

Theo
 
Inderdaad, zijn manier is een aantal keren sneller. Dit verschil is echter pas merkbaar als je de code bijv. een miljoen keer laat draaien.

Maar hij heeft wel een goed punt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan