PHP - Zeitberechnung
Hi Leute,
es ist soweit...heute brauche ich mal ein bisschen Nachhilfe in Sachen PHP.
Wir haben hier für einen Linuxserver "rrdtool" im Einsatz. Wem das nichts sagt, sowas wie Nagios bloß etwas viel kleiner - sozusagen der kl. Bruder. Mit diesem Tool erstellen wir unsere Auswertungen für CPU, Netzwerk, Festplatten, Traffic, etc... . Damit die Graphen selbstständig sich aktualisieren habe ich einen Cronjob erstellt, der alle 5 Minuten läuft - und zwar in diesem Rythmus: 10:00 Uhr, 10:05 Uhr, 10:10Uhr
Passend dazu gibt es eine 0815 Website mit ein bisschen HTML und PHP. Diese gibt brav alle Graphen sortiert nach Typ aus. Nun möchte ich folgendes realisieren:
Der Admin "x" hat um 10:03 die Monitoring - Seite betreten und bleibt bis 10:08 Uhr auch darauf und analysiert die Graphen. Nun ist es so, dass um 10:05 (siehe oben) eine Aktualisierung der Graphen durchgeführt worden ist. D.h. es könnte schon wieder ganz anders aussehen.
Sprich die Website soll genau um 10:05:02 Uhr (Stunden:Minuten:Sekunden) reloaded werden. Der Refresh der Seite ist kein Problem - jedoch die Zeitberechung macht mir Kopfzerbrechen. Denn ich bei bereten der Seite muss berechnet werden, wie viele Sekunden noch bis 10:05 Uhr fehlen.
Meinen bisherigen Ansatz poste ich einfach mal nicht. Da sonst zu 90% die Ideen darauf aufbauen und ich vllt. auf dem falschen Weg bin. Falls ihr es nicht ganz verstanden habt, sagt Bescheid - ich hab's auch nicht gleich aufs 1. Mal kapiert.
Grüsse,
Dani
es ist soweit...heute brauche ich mal ein bisschen Nachhilfe in Sachen PHP.
Wir haben hier für einen Linuxserver "rrdtool" im Einsatz. Wem das nichts sagt, sowas wie Nagios bloß etwas viel kleiner - sozusagen der kl. Bruder. Mit diesem Tool erstellen wir unsere Auswertungen für CPU, Netzwerk, Festplatten, Traffic, etc... . Damit die Graphen selbstständig sich aktualisieren habe ich einen Cronjob erstellt, der alle 5 Minuten läuft - und zwar in diesem Rythmus: 10:00 Uhr, 10:05 Uhr, 10:10Uhr
Passend dazu gibt es eine 0815 Website mit ein bisschen HTML und PHP. Diese gibt brav alle Graphen sortiert nach Typ aus. Nun möchte ich folgendes realisieren:
Der Admin "x" hat um 10:03 die Monitoring - Seite betreten und bleibt bis 10:08 Uhr auch darauf und analysiert die Graphen. Nun ist es so, dass um 10:05 (siehe oben) eine Aktualisierung der Graphen durchgeführt worden ist. D.h. es könnte schon wieder ganz anders aussehen.
Sprich die Website soll genau um 10:05:02 Uhr (Stunden:Minuten:Sekunden) reloaded werden. Der Refresh der Seite ist kein Problem - jedoch die Zeitberechung macht mir Kopfzerbrechen. Denn ich bei bereten der Seite muss berechnet werden, wie viele Sekunden noch bis 10:05 Uhr fehlen.
Meinen bisherigen Ansatz poste ich einfach mal nicht. Da sonst zu 90% die Ideen darauf aufbauen und ich vllt. auf dem falschen Weg bin. Falls ihr es nicht ganz verstanden habt, sagt Bescheid - ich hab's auch nicht gleich aufs 1. Mal kapiert.
Grüsse,
Dani
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 97590
Url: https://administrator.de/contentid/97590
Ausgedruckt am: 16.11.2024 um 13:11 Uhr
11 Kommentare
Neuester Kommentar
Ich hätte folgenden Ansatz:
Die aktuellen Minuten mit 60 multiplizieren plus die aktuellen Sekunden. Danach solange 300 subtrahieren bis der Rest kleiner 300 ist. Die Diferenz zu 300 bilden. Fertig.
Beispiel: xx:12:23 Uhr
-> 12 * 60 = 720 + 23 = 743
-> 743 - 300 = 443 - 300 = 143
-> 300 - 143 = 157 [Sekunden]
Beispiel: xx:18:59 Uhr
-> 18 * 60 = 1080 + 59 = 1139
-> 1139 - 300 = 839 - 300 = 539 - 300 = 239
-> 300 - 239 = 61 [Sekunden]
Es geht natürlich auch mit Division:
-> 18 * 60 = 1080 + 59 = 1139
-> 1139 : 300 = 3,7966
-> 0,7966 * 300 = 239
-> 300 - 239 = 61 [Sekunden]
Manuel
Die aktuellen Minuten mit 60 multiplizieren plus die aktuellen Sekunden. Danach solange 300 subtrahieren bis der Rest kleiner 300 ist. Die Diferenz zu 300 bilden. Fertig.
Beispiel: xx:12:23 Uhr
-> 12 * 60 = 720 + 23 = 743
-> 743 - 300 = 443 - 300 = 143
-> 300 - 143 = 157 [Sekunden]
Beispiel: xx:18:59 Uhr
-> 18 * 60 = 1080 + 59 = 1139
-> 1139 - 300 = 839 - 300 = 539 - 300 = 239
-> 300 - 239 = 61 [Sekunden]
Es geht natürlich auch mit Division:
-> 18 * 60 = 1080 + 59 = 1139
-> 1139 : 300 = 3,7966
-> 0,7966 * 300 = 239
-> 300 - 239 = 61 [Sekunden]
Manuel
1. du benötigst Nachhilfe in PHP? Ich wünsch dir gute Besserung, scheint die momentan umhergehende Grippe zu sein (icb beschuldige jetzt mal nicht einen gewissen Webmin, der dich womöglich bis zum Rest ausgequetscht hat)
2. Du kennst meine Kenntnisse, aber ich versuchs trotzdem mal *gg*
So ungefähr?
Mfg
Mitchell
2. Du kennst meine Kenntnisse, aber ich versuchs trotzdem mal *gg*
<?php
$refresh = mktime(10, 5, 0);
$current = time();
$remain = $refresh- $current;
$minuten = interval($remain / 60);
$sekunden = $remain % 60;
echo "Noch $minuten Minuten und $sekunden Sekunden bis zum Refresh";
?>
So ungefähr?
Mfg
Mitchell
Wenn ich es richtig verstanden habe, dann soll der Admin, wenn er um 10:03 da ist und um 10:08 gehen will, um 10:05 einen automatischen Seitenreload bekommen? Oder? Wenn ja, dann mach es doch einfach mit JavaScript. Lass dort einfach jede Minute die Zeit abfragen und wenn du mod 5 bei Minuten erreicht hast, dann soll ein Reload stattfinden.
Hier als Beispiel mit JavaScript
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<meta name="language" content="de">
<title>Reload</title>
<script language="JavaScript" type="text/javascript">
var timeInterval = 30000; // in Milisekunden, wie oft wird die Zeit verglichen (hier 30sec)
var timeIntervalReload = 5; // in Minuten (zu wann wird das Reload durchgeführt (hier jede 5te Minute einer Stunde)
var reloadFlag = false; // mehrere Reloads hintereinander unterbinden
var timeCheckTimer = window.setInterval("checkTime()", timeInterval);
function checkTime(){
var timeNowObject = new Date();
var timeNow = timeNowObject.getMinutes();
var timeToReload = 0;
timeToReload = timeNow%timeIntervalReload;
if(timeToReload == 0 && reloadFlag){
// reload homepage
location.reload();
}else if(timeToReload != 0){
self.document.getElementById('reloadCounter').innerHTML = 'Reload in ' + (timeIntervalReload-timeToReload) + ' Minuten...';
reloadFlag = true;
}
}
</script>
</head>
<body>
<div id="reloadCounter">Daten sind aktuell.</div>
</body>
</html>