Rheinwerk Computing < openbook > Rheinwerk Computing - Professionelle Bücher. Auch für Einsteiger.
Professionelle Bücher. Auch für Einsteiger.

 <<   zurück
JavaScript und AJAX von Christian Wenz
Das umfassende Handbuch
Buch: JavaScript und AJAX

JavaScript und AJAX
839 S., mit DVD, 39,90 Euro
Rheinwerk Computing
ISBN 3-89842-859-1
gp Kapitel 5 Datum
  gp 5.1 Tagesdatum
  gp 5.2 Y2K
  gp 5.3 Mit Daten rechnen
  gp 5.4 Lokales Datumsformat


Rheinwerk Computing

5.3 Mit Daten rechnen  toptop

In JavaScript Version 1.0 wurden Datumswerte intern als die Anzahl der seit dem 1. Januar 1970 verstrichenen Millisekunden gespeichert. Diese auf den ersten Blick merkwürdig anmutende Vorgehensweise bietet einen großen Vorteil: Dadurch werden Rechenoperationen ermöglicht, die ansonsten nur sehr schwer und kompliziert zu implementieren gewesen wären.

Die Hauptanwendung ist hier die Berechnung der Differenz zweier Datumswerte. Wie viele Tage oder Stunden dauert es noch bis zum 1. 1. 2008? Wie viele Tage bin ich alt? Um wie viele Stunden ist mein Bruder/meine Schwester/mein Hund älter bzw. jünger?

Sie nutzen dazu die Methode getTime() und ganz wenig Mathematik. Die Methode getTime() gibt die Zeit in der Datumsvariablen im Format »Millisekunden seit dem 1. 1. 1970« zurück. Wenn zwei Datumsvariablen vorliegen, deren zeitliche Differenz berechnet werden muss, so kann der Millisekundenwert beider Variablen voneinander abgezogen werden, und man hat das Ergebnis. Dieses liegt dann zwar in Millisekunden vor, aber die Umrechnung in handlichere Werte ist recht einfach. Eine Division durch 1000 ergibt Sekunden (eine Sekunde dauert 1000 Millisekunden); durch 1000 × 60 ergibt die Minuten (analog: 60 Sekunden sind eine Minute) und so fort. Die Division durch 1000 × 60 × 60 × 24 gibt die Zeit in Tagen an.

Noch wissen Sie nicht, wie man Benutzereingaben mit JavaScript abfängt; aus diesem Grund muss im folgenden Beispiel zum Testen an einer Variablen »herumgeschraubt« werden. Das Beispiel mit den Geburtsdaten ist heikel, wenn man vor dem 1. Januar 1970 geboren ist (aus Gründen der Abwärtskompatibilität), daher berechnen wir nun die zeitliche Differenz des Datums der Wiedervereinigung zum letzten »echten« Jahrtausendwechsel, also dem 1. 1. 2001:

<html>
<head>
<title>Jahrtausendwechsel</title>
<script type="text/javascript"><!--
var d = new Date(89, 9, 3);  //3.10.1989
var d2 = new Date(2001, 0, 1);  //1.1.2001
function differenz() {
   var dtime = d.getTime();
   var d2time = d2.getTime();
   var diff = d2time – dtime;
   var diffstring = (diff/1000) + " Sekunden";
   diffstring += " oder " + (diff/(1000*60)) +
   " Minuten";
   diffstring += " oder " + (diff/(1000*60*60)) +
   " Stunden";
   diffstring += " oder " + (diff/(1000*60*60*24)) +
   " Tage";
   document.write("Zeitunterschied: " + diffstring);
}
//--></script>
</head>
<body>
<h1>Zeitunterschied</h1>

<script type="text/javascript"><!--
   differenz();
//--></script>
</body>
</html>

Abbildung
Hier klicken, um das Bild zu Vergrößern

Abbildung 5.1     Mit Daten rechnen: Ein Zeitunterschied

 <<   zurück
  
  Zum Katalog
Neuauflage: JavaScript
Neuauflage: JavaScript
bestellen
 Ihre Meinung?
Wie hat Ihnen das <openbook> gefallen?
Ihre Meinung

 Buchtipps
Zum Katalog: jQuery






 jQuery


Zum Katalog: Einstieg in JavaScript






 Einstieg in JavaScript


Zum Katalog: Responsive Webdesign






 Responsive Webdesign


Zum Katalog: Suchmaschinen-Optimierung






 Suchmaschinen-
 Optimierung


 Shopping
Versandkostenfrei bestellen in Deutschland und Österreich
InfoInfo




Copyright © Rheinwerk Verlag GmbH 2007
Für Ihren privaten Gebrauch dürfen Sie die Online-Version natürlich ausdrucken. Ansonsten unterliegt das <openbook> denselben Bestimmungen, wie die gebundene Ausgabe: Das Werk einschließlich aller seiner Teile ist urheberrechtlich geschützt. Alle Rechte vorbehalten einschließlich der Vervielfältigung, Übersetzung, Mikroverfilmung sowie Einspeicherung und Verarbeitung in elektronischen Systemen.


Nutzungsbestimmungen | Datenschutz | Impressum

Galileo Press, Rheinwerkallee 4, 53227 Bonn, Tel.: 0228.42150.0, Fax 0228.42150.77, service@rheinwerk-verlag.de