Ergebnis 1 bis 6 von 6
  1. #1
    Dieterlm ist offline Grünschnabel
    registriert
    09-12-2020
    Ort
    Pfalz
    Beiträge
    5

    Datumsvergleich

    Hallo,

    ich hoffe ihr könnt mir helfen, denn ich habe von JavaScript keine Ahnung. ich habe ein Tool programmiert, welches einmal pro Stunde ein Systemcheck durchführt. Das Tool erzeugt dann eine HTML Seite in welcher die Ergebnisse dargestellt werden. Das Ganze funktioniert soweit auch super.
    Was ich allerdings nicht hinbekomme ist, dass die HTML Seite selbst erkennt, wenn der nächste Check nicht zeitgerecht durchgeführt wurde. Es gibt auf der Seite eine Tabelle (siehe unten) welches eine Datum Uhrzeit für Last check und Next check hat. Nun möchte ich feststellen, ob die aktuelle Uhrzeit größer als Next check ist und wenn ja diese Zelle rot darstellen.

    Code:
    <meta http-equiv="refresh" content=60>
    ...
    <table>
    <tr>
    <th Style="text-align:center">Last check</th>
    <th Style="text-align:center">Next check</th></tr>
    <tr>
      <td bgcolor=green Style="text-align:center">28/12/2020 22:15</td>
      <td bgcolor=green Style="text-align:center">28/12/2020 23:15</td></tr>
    </table>
    ...
    Ich hoffe ihr könnt mir weiter helfen.

    Gruß
    Marcus
    blutiger JavaScript Anfänger, bzw. Umsteiger.

  2. #2
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.864

    AW: Datumsvergleich

    Da du die Seite mittels http-equiv="refresh" und nicht mit AJAX aktualisierst wird dir JS keine große Hilfe sein, denn im Moment des refresh wird alles JS in diesem Dokument angehalten. Also bekommst du einen Ausfall des Backend damit nicht eingefangen.

    Das macht nur Sinn, wenn du es mit AJAX aktualisierst.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  3. #3
    Dieterlm ist offline Grünschnabel
    registriert
    09-12-2020
    Ort
    Pfalz
    Beiträge
    5

    AW: Datumsvergleich

    Zitat Zitat von mikdoe Beitrag anzeigen
    Das macht nur Sinn, wenn du es mit AJAX aktualisierst.
    Meinst du so:
    Code:
    <script type="text/javascript">
    setTimeout("document.location.reload();",10000);
    </script>
    blutiger JavaScript Anfänger, bzw. Umsteiger.

  4. #4
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.864

    AW: Datumsvergleich

    Nein das ist kein AJAX. AJAX ist das hier: https://developer.mozilla.org/en-US/...etting_Started

    Oder mit jQuery (was ich empfehle): https://api.jquery.com/jquery.ajax/

    Der Grund ist: im Moment wo der Browser http-equiv="refresh" oder document.location ausführt wird JS Ausführung angehalten, das heißt, es gibt dann keinen Code mehr, der etwas rot machen kann. Und es soll ja reagiert werden, wenn das Backend hängt.

    Das kann man also lösen, indem man entweder
    1. dafür sorgt, dass das Backend IMMER liefert durch Zwischenschaltung eines Wrappers, der dann aber eh HTML Quellcode liefern kann und die Einfärbung vornehmen könnte (hierfür bräuchte das Frontend nicht angefasst werden)
    oder
    2. das gesamte Dokument ausführbar lässt, weil der Request per AJAX gemacht wird (hierfür bräuchte das Backend nur wenig angefasst werden)

    Das AJAX sieht abschreckend aus aber das ist es nicht. Entscheide dich, was du anfassen willst und du bekommst Hilfe.
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

  5. #5
    Dieterlm ist offline Grünschnabel
    registriert
    09-12-2020
    Ort
    Pfalz
    Beiträge
    5

    AW: Datumsvergleich

    Danke, habe es jetzt so gelöst:

    Code:
    <!DOCTYPE html>
    <html>
    <head>
    <style>
    body {background-color: black; font-family: verdana;}
    h3 {color: white; text-align: left;}
    p  {color: grey;  font-size: 10px;}
    th {text-align: left; color: white; font-size: 11px;}
    td {font-weight:bold; font-size: 11px;}
    </style>
    <title>SiteInfoObserver</title>
    <script type="text/javascript">
    var colorRed = "#FF0000";
    var colorGreen = "#00FF00";
    function refresh()
    {setTimeout("document.location.reload();",3000);}
    window.addEventListener("load", refresh);
    function formatTime(num)
    {num = (num < 10 ? '0' : '' )+ num;return num;}
    function updateTime() 
    {var date = new Date();
    var hr = date.getHours();hr = formatTime(hr);
    var min = date.getMinutes();min = formatTime(min);
    var sec = date.getSeconds();sec = formatTime(sec);
    var day = date.getDate();
    var monthOfYear = date.getMonth();
    var year = date.getFullYear();
    var dayOfWeek = date.getDay();
    var weekday = new Array("Sun", "Mon", "Tue", "Wed", "Thu", "Fri", "Sat");
    var month = new Array("Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec");
    var datum = weekday[dayOfWeek] + ", " + day + " " + month[monthOfYear] + " " + year + " " + hr + ":" + min  + ":" + sec;
    document.getElementById('time').innerHTML = datum;}
    window.addEventListener("load", updateTime);
    function changeTable()
    {var d = new Date();
    var t = document.getElementById("nextcheck").innerHTML;
    var d2 = new Date(t);
    if (d2 > d) { document.getElementById("nextcheck").style.backgroundColor = colorGreen;} 
    else {document.getElementById("nextcheck").style.backgroundColor = colorRed;}}
    window.addEventListener("load", changeTable);
    </script>
    </head>
    <body>
    <h3>NIRIS SiteInfo<br>observer</h3>
    <table>
    <td width=154 Style="text-align:center; color:grey; font-size:9px">
    Result of a scheduled checks of NIRISsiteInfo.xml(s). For more info read the manual.</td>
    </table>
    <table>
    <tr><th width=154  >Last check</th></tr>
    <tr><td id="lastcheck" bgcolor=#00FF00 >02.01.2021 19:51:31</td></tr>
    <tr><th width=154  >Next check</th></tr>
    <tr><td id="nextcheck" bgcolor=#00FF00 >02.01.2021 20:51:31</td></tr>
    </table>
    <table>
    <td width=154  Style="color:yellow; font-size:9px; text-align:center"><div id="time"></div></td>
    </table>
    <table>
    <tr>
    <th width=110 Style="text-align:left">Server</th>
    <th width=40 Style="text-align:center">Result</th></tr>
    <tr>
    <tr><td bgcolor=#FF0000 >Server1</td>
    <td bgcolor=#FF0000 Style="text-align:center">NOK</td></tr>
    <tr><td bgcolor=#FF0000 >Server2</td>
    <td bgcolor=#FF0000 Style="text-align:center">NOK</td></tr>
    <tr><td bgcolor=#FF0000 >Server3</td>
    <td bgcolor=#FF0000 Style="text-align:center">NOK</td></tr>
    <tr><td bgcolor=#FF0000 >Server4</td>
    <td bgcolor=#FF0000 Style="text-align:center">NOK</td></tr>
    <tr><td bgcolor=#FF0000 >Server5</td>
    <td bgcolor=#FF0000 Style="text-align:center">NOK</td></tr>
    
    </table>
    </body>
    </html>
    blutiger JavaScript Anfänger, bzw. Umsteiger.

  6. #6
    Avatar von mikdoe
    mikdoe ist offline Administrator
    registriert
    01-05-2010
    Beiträge
    7.864

    AW: Datumsvergleich

    Und was passiert, wenn refresh/reload scheitert?
    Das deutsche Javascript Forum http://forum.jswelt.de http://forum.jswelt.de/images/logoJsWeltForumV4_32x22.png

Ähnliche Themen

  1. [MYSQL] Datumsvergleich
    Von mo im Forum Serverseitige Programmierung
    Antworten: 7
    Letzter Beitrag: 06-10-2014, 14:42
  2. problem mit datumsvergleich
    Von thc-bun im Forum JavaScript
    Antworten: 4
    Letzter Beitrag: 08-12-2005, 22:25
  3. zeit- und datumsvergleich
    Von Freaky im Forum Serverseitige Programmierung
    Antworten: 1
    Letzter Beitrag: 03-01-2005, 20:43
  4. Problem mit Datumsvergleich
    Von JamieFraser im Forum JavaScript
    Antworten: 3
    Letzter Beitrag: 15-04-2004, 10:32

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •