romy: date-funktionen

Hi,

gibt es in Javascript noch mehr Date-Funktionen, als in der SelfHTML-Doku stehen.
Bräuchte sowas wie "ermitteln der Anzahl der Tage eines Monats" -> die Februarproblematik (also je nach Monat bzw. Jahr)
danke

ciao
romy

  1. Hallo,

    gibt es in Javascript noch mehr Date-Funktionen, als in der SelfHTML-Doku stehen.
    Bräuchte sowas wie "ermitteln der Anzahl der Tage eines Monats" -> die Februarproblematik (also je nach Monat bzw. Jahr)

    Die Anwendung des Datumsobjektes reicht dafuer voellig aus:

    function TageImMonat(m,j)
    {
      var t=31;
      t=(new Date(j,m-1,t).getDate()==t)?t:30;
      t=(new Date(j,m-1,t).getDate()==t)?t:29;
      t=(new Date(j,m-1,t).getDate()==t)?t:28;
      return t;
    }

    TageImMonat(2,2004) ergibt 29.

    MfG, Thomas

    1. Hi,

      danke, da wäre ich so schnell nicht draufgekommen

      ciao
      romy

    2. Hallo,

      ich finde es ein bißchen kompliziert, was du da geschrieben hast.
      Ein (new Date(j, m, 0)).getDate() sollte doch eigentlich genügen.
      Das Datumsobjekt rechnet dann das korrekte Datum aus.

      jan

      1. Hallo,

        ich finde es ein bißchen kompliziert, was du da geschrieben hast.
        Ein (new Date(j, m, 0)).getDate() sollte doch eigentlich genügen.
        Das Datumsobjekt rechnet dann das korrekte Datum aus.

        Das sieht in der Tat sehr elegant aus. Ich habe einfach den Tag (31 bis 28) des aktuellen Monats (m-1) durchgetestet.

        MfG, Thomas

  2. Hallo,

    gibt es in Javascript noch mehr Date-Funktionen, als in der SelfHTML-Doku stehen.
    Bräuchte sowas wie "ermitteln der Anzahl der Tage eines Monats" -> die Februarproblematik (also je nach Monat bzw. Jahr)
    danke

    Worum geht es genau?

    Wenn Du prüfen willst, ob ein Tag noch in einem bestimmten Monat eines bestimmten Jahres liegt, dann erzeuge mit dem Tag, dem bestimmten Monat und dem bestimmten Jahr ein neues Datum und prüfen dann, ob der Monat des erzeugten Datums gleich Deinem bestimmten Monat ist.

    Beispiel:

    <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
            "http://www.w3.org/TR/html4/strict.dtd">
    <html>
    <head>
    <title>29. Februar?</title>
    <script type="text/javascript">
    <!--
    function feb29(jahr) {
      var d = new Date(jahr, 1, 29);
      if (d.getMonth() == 1) {
        alert("Es gibt einen 29. Februar " + jahr);
      } else {
        alert("Es gibt keinen 29. Februar " + jahr);
      }
    }
    //-->
    </script>
    </head>
    <body>
    <form action="#" method="POST">
    <p>Gibt es einen 29. Februar im Jahr:
    <input type="Text" name="jahr" value="" size="5" maxlength="4">
    </p>
    <p><input type="button" name="frage" value="?" onclick="feb29(this.form.jahr.value)"></p>
    </form>
    </body>
    </html>

    viele Grüße

    Axel

    1. Hi Axel,

      Worum geht es genau?

      mir geht es um die Erstellung eines kleinen Fensters,welches so ungefähr die Funktionalität hat, wie die Datumsauswahl vom Betriebssystem.
      Das Ganze ist für eine Intranet-Anwendung,
      aber ich habe einige Probleme...

      Am Einfachsten wäre es natürlich wenn es Ähnliches schon gäbe, habe aber nichts gefunden.

      Problem1:
      ich habe eine Funktion, welche den Inhalt des Fensters erstellt
      -----------------------------
      < monat, jahr >
      Mo di Mi Do Fr Sa So
         1   2  3  4  5  6
      7  8  9  10  11 12 13
      14 15 16 17 18 19 20
      21 22 23 24 25 26 27
      28 29 30

      aktuelles Datum: blabla

      -----------------------------------------
      so sollte das in etwa aussehen, der User kann die Monate vor und zurückklicken und dann auf einen speziellen Tag gehen. Das Datum wird dann bei onClick in ein inputfeld geschrieben
      bei onMouseover wir unten das Datum angezeigt

      creiere ich jetzt die Links zum Monat vor und zurück, müsste ich dort neue Funktionen aufrufen per onClick, zum addieren bzw. subtrahieren des Monats (Jahres)

      das Ganze sieht so aus:
      --------------------------------------------------------------
      function createDateForm() {

      document.writeln('<a href="#" onClick="submonth();return false;"> &#60; </a>');
      }

      function submonth() {
         actMonth--;
      }
      ----------------------------------------------------------------

      actMonth ist global;
      so lässt es sich aber nicht realisieren, da kommt immer der Fehler Objekt erwartet. Wahrscheinlich kann es auch gar nicht gehen,aber wie realisiert man es dann?

      ciao
      romy

      1. Hallo,

        Am Einfachsten wäre es natürlich wenn es Ähnliches schon gäbe, habe aber nichts gefunden.

        Problem1:
        ich habe eine Funktion, welche den Inhalt des Fensters erstellt

        < monat, jahr >
        Mo di Mi Do Fr Sa So
           1   2  3  4  5  6
        7  8  9  10  11 12 13
        14 15 16 17 18 19 20
        21 22 23 24 25 26 27
        28 29 30

        aktuelles Datum: blabla

        Naja, so vom Prinzip her entspricht das diesem Beispiel: http://www.styleassistant.de/tips/kalender.htm. Dort werden Auswahllisten fuer Monat und Jahr verwendet.

        MfG, Thomas

        1. Hi Thomas

          Naja, so vom Prinzip her entspricht das diesem Beispiel: http://www.styleassistant.de/tips/kalender.htm. Dort werden Auswahllisten fuer Monat und Jahr verwendet.

          das ist toll,
          ich guck mal drüber, müsste ja im Prinzip nur noch einbauen, dass auch vorangegangene Jahre bzw. Monat ausgewählt werden können

          danke

          ciao
          romy

      2. Hi,

        Mo di Mi Do Fr Sa So
           1   2  3  4  5  6
        7  8  9  10  11 12 13
        14 15 16 17 18 19 20
        21 22 23 24 25 26 27
        28 29 30

        man verzeihe mir den link auf eine komerzielle Seite, aber ich denke, das Kalender-Script dort koennte Dir ein paar Anregungen liefern:
        http://www.sixti.de/cgi-perl/rental/el?language=de
        Der Kalender oeffnet sich per Klick auf das Symbol...

        Gruesse  Joachim