Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

PHP - Zeitberechnung

Frage Entwicklung PHP

Mitglied: Dani

Dani (Level 5) - Jetzt verbinden

23.09.2008, aktualisiert 22:46 Uhr, 6233 Aufrufe, 11 Kommentare

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
Mitglied: manuel-r
23.09.2008 um 12:00 Uhr
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
Bitte warten ..
Mitglied: Mitchell
23.09.2008 um 12:07 Uhr
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*

01.
<?php 
02.
$refresh = mktime(10, 5, 0);  
03.
$current = time();  
04.
$remain = $refresh- $current;  
05.
$minuten =  interval($remain / 60); 
06.
$sekunden = $remain % 60; 
07.
 
08.
echo "Noch $minuten Minuten und $sekunden Sekunden bis zum Refresh"
09.
?>


So ungefähr?

Mfg

Mitchell
Bitte warten ..
Mitglied: dtzzzzzz
23.09.2008 um 12:13 Uhr
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.
Bitte warten ..
Mitglied: Dani
23.09.2008 um 13:15 Uhr
Hi Manu,
wenn ich das richtig verstanden habe, nimmst du die Stunden * 60. Kannst du mir kurz erklären warum du das machst?! Denn somit habe ich die Minuten am Ende. Irgendwie denke ich gerade, du hast Sekunden und Minuten durcheinander gebracht. :-P

So siehts ganz gut aus:
01.
<?php 
02.
$intervall= 300; //Sekunden = 5 Minuten 
03.
 
04.
$akt_sec = (date("i") * 60) + date("s"); 
05.
 
06.
 
07.
while ($akt_sec > $intervall) 
08.
09.
        $akt_sec-= $intervall; 
10.
11.
$akt_sec = $intervall - $akt_sec + 2; 
12.
 
13.
?>
Die Tests sehen kannst gut aus, die Differenz stimmt...ich habe einfach zu kompliziert gedacht...war schon dabei den UNIX_TIMESTAMP rauszuholen...Danke!


Gruss,
Dani
Bitte warten ..
Mitglied: Dani
23.09.2008 um 13:17 Uhr
Hi Mitchell,
du glaubst gar nicht, wie viel Zeit ich schon mit dem Listenparser verbringe - könnte meine neue Freundin werden.
Bei deiner Variante, blick ich nicht so ganz durch. Der Pharser meckert, dass es die Funktion "interval()" nicht gibt. Benutzen hier eigentlich PHP 5.1.x.... ???

@dtzzz
Ein Beispiel wäre nett gewesen....


Gruss,
Dani
Bitte warten ..
Mitglied: Dani
23.09.2008 um 13:24 Uhr
Das Problem ist zum Teil schon gelöst - die Berechung der Sekunden funktioniert. Nur leider wenn ich meinen Test-PHP-Code in die index.php mit einfüge, geht der Refresh nicht mehr. So sieht im Moment meine index.php aus:
01.
<?php 
02.
$intervall= 300; //Sekunden = 5 Minuten 
03.
 
04.
$akt_sec = (date("i") * 60) + date("s"); 
05.
 
06.
 
07.
while ($akt_sec > $intervall
08.
09.
        $akt_sec-= $intervall
10.
11.
$akt_sec = $intervall - $akt_sec + 2; 
12.
 
13.
?> 
14.
 
15.
<html> 
16.
<head> 
17.
        <title>LIVE Monitoring v1</title> 
18.
        <meta http-equiv="refresh" content="<?php echo $akt_sec; ?>; URL=http://meine zieladresse"
19.
        <link rel="stylesheet" type="text/css" href="style.css"
20.
 
21.
        <script language="JavaScript" type="text/JavaScript"
22.
        <!-- 
23.
        function NewWindow(modul,x,y) 
24.
25.
                Popup = open("popup.php?bild=" +modul,"Popup","width=" + x + ",height=" + y + ",left=0,top=0,status=no,menubar=no,resizeable=no,dependent=yes,scrollbars=no,scrolling=no,location=no"); 
26.
                Popup.moveTo((screen.width/2)-x/2, (screen.height/2)-y/2); 
27.
                Popup.focus(); 
28.
29.
        //--> 
30.
        </script> 
31.
</head> 
32.
 
33.
<body> 
34.
<h1> Monitoring ROOT - Server (dserver01)</h1> 
35.
<?php 
36.
$dir = './'
37.
if(is_dir($dir)) 
38.
39.
        $files=scandir($dir); 
40.
        $i=0; 
41.
 
42.
        foreach($files as $pic
43.
44.
                if(strstr($pic, ".png")) 
45.
46.
                        if($i%2 == 0) echo "<br /><br />"
47.
                        echo "<img src=".$pic."?".time()." onClick=NewWindow('$pic','900','300'); /></img>&nbsp;&nbsp;"
48.
                        $i ++; 
49.
50.
51.
52.
?> 
53.
 
54.
</body> 
55.
</html>
Das verstehe wer will...denn der Quellcode nach dem Pharser sieht so aus:
01.
<html> 
02.
<head> 
03.
	<title>LIVE Monitoring v1</title> 
04.
	<meta http-equiv="refresh" content="5; URL=http://meine zieladresse">  
05.
	<link rel="stylesheet" type="text/css" href="style.css"> 
06.
 
07.
	<script language="JavaScript" type="text/JavaScript"> 
08.
        <!-- 
09.
        function NewWindow(modul,x,y) 
10.
11.
		Popup = open("popup.php?bild=" +modul,"Popup","width=" + x + ",height=" + y + ",left=0,top=0,status=no,menubar=no,resizeable=no,dependent=yes,scrollbars=no,scrolling=no,location=no"); 
12.
		Popup.moveTo((screen.width/2)-x/2, (screen.height/2)-y/2); 
13.
		Popup.focus(); 
14.
15.
	//--> 
16.
	</script> 
17.
</head> 
18.
 
19.
<body> 
20.
<h1> Monitoring ROOT - Server (dserver01)</h1> 
21.
<br /><br /><img src=01_load-h.png?1222168459 onClick=NewWindow('01_load-h.png','900','300'); /></img>&nbsp;&nbsp;<img src=02_load-d.png?1222168459 onClick=NewWindow('02_load-d.png','900','300'); /></img>&nbsp;&nbsp;<br /><br /><img src=03_load-w.png?1222168459 onClick=NewWindow('03_load-w.png','900','300'); /></img>&nbsp;&nbsp;<img src=04_load-w.png?1222168459 onClick=NewWindow('04_load-w.png','900','300'); /></img>&nbsp;&nbsp;<br /><br /><img src=11_memory-d.png?1222168459 onClick=NewWindow('11_memory-d.png','900','300'); /></img>&nbsp;&nbsp;<img src=15_root-w.png?1222168459 onClick=NewWindow('15_root-w.png','900','300'); /></img>&nbsp;&nbsp;<br /><br /><img src=20_processes-d.png?1222168459 onClick=NewWindow('20_processes-d.png','900','300'); /></img>&nbsp;&nbsp;<img src=21_processes-w.png?1222168459 onClick=NewWindow('21_processes-w.png','900','300'); /></img>&nbsp;&nbsp;<br /><br /><img src=25_traffic-eth0-h.png?1222168459 onClick=NewWindow('25_traffic-eth0-h.png','900','300'); /></img>&nbsp;&nbsp;<img src=26_traffic-eth0-d.png?1222168459 onClick=NewWindow('26_traffic-eth0-d.png','900','300'); /></img>&nbsp;&nbsp;<br /><br /><img src=27_traffic-eth0-w.png?1222168459 onClick=NewWindow('27_traffic-eth0-w.png','900','300'); /></img>&nbsp;&nbsp;<img src=28_traffic-eth0-m.png?1222168459 onClick=NewWindow('28_traffic-eth0-m.png','900','300'); /></img>&nbsp;&nbsp; 
22.
</body> 
23.
</html>
Das verstehe ich nicht mehr...die Syntax ist eigentlich so in Ordnung. Haben wir 100x so schon gemacht.
Bitte warten ..
Mitglied: Mitchell
23.09.2008 um 13:37 Uhr
Hi Dani,

ups, da war ich wohl teilweise noch in meinem Brief mit richtigen Wörtern

Der Befehl lautet natürlich intval, dieser gibt dir einen Integer-Wert aus. Hm...das mit dem Refresh kapiere ich grade auch nicht, entweder liegts an meinen fehlenden Javakenntnissen oder an Blindheit.

Mfg

Mitchell
Bitte warten ..
Mitglied: dtzzzzzz
23.09.2008 um 14:16 Uhr
Hier als Beispiel mit JavaScript

01.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" 
02.
"http://www.w3.org/TR/html4/loose.dtd"> 
03.
<html> 
04.
<head> 
05.
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1"> 
06.
<meta name="language" content="de"> 
07.
<title>Reload</title> 
08.
 
09.
<script language="JavaScript" type="text/javascript"> 
10.
var timeInterval = 30000; // in Milisekunden, wie oft wird die Zeit verglichen (hier 30sec) 
11.
var timeIntervalReload = 5; // in Minuten (zu wann wird das Reload durchgeführt (hier jede 5te Minute einer Stunde) 
12.
var reloadFlag = false; // mehrere Reloads hintereinander unterbinden 
13.
var timeCheckTimer = window.setInterval("checkTime()", timeInterval); 
14.
 
15.
function checkTime(){ 
16.
	var timeNowObject = new Date(); 
17.
	var timeNow = timeNowObject.getMinutes(); 
18.
	var timeToReload = 0; 
19.
	 
20.
	timeToReload = timeNow%timeIntervalReload;	 
21.
	if(timeToReload == 0 && reloadFlag){ 
22.
		// reload homepage 
23.
		location.reload(); 
24.
	}else if(timeToReload != 0){ 
25.
		self.document.getElementById('reloadCounter').innerHTML = 'Reload in ' + (timeIntervalReload-timeToReload) + ' Minuten...'; 
26.
		reloadFlag = true; 
27.
28.
29.
</script> 
30.
 
31.
</head> 
32.
<body> 
33.
<div id="reloadCounter">Daten sind aktuell.</div> 
34.
</body> 
35.
</html>
Bitte warten ..
Mitglied: Dani
23.09.2008 um 16:33 Uhr
Hi dtzzzzzzzzzz,
geil...damit geht es nun. Habe es noch ein bisschen angepasst aber die Grundfunktion hat keine Probleme gemacht - Thx.


Grüsse,
Dani
Bitte warten ..
Mitglied: manuel-r
23.09.2008 um 22:39 Uhr
Nö, ich hab nichts durcheinander gebracht. Da steht doch xx:12:23 - also x Uhr 12 Minuten und 23 Sekunden. Die Stunden hatte ich ge-x-t, weil die bei deiner Problemstellung keine Rolle spielen.

Manuel
Bitte warten ..
Mitglied: Dani
23.09.2008 um 22:46 Uhr
Au...das habe ich nicht gesehen. Ok, dann möchte ich nix gesagt haben.


Grüsse,
Dani
Bitte warten ..
Ähnliche Inhalte
Microsoft Office
Zeitberechnung in Excel
gelöst Frage von hansis1Microsoft Office9 Kommentare

Hallo! Ich stehe vor folgendem Problem. In Excel 2013 muss ich eine Zeitspanne berechnen. Ich habe dazu die Anfangszeit ...

Microsoft Office
Excel: Zeitberechnung mit einzelnen Werten (Uhrzeit) Wert berechen
gelöst Frage von evolutionMicrosoft Office9 Kommentare

Hallo, ich hätte mal eine Frage an die Excel-Spezialisten. Ich habe eine Art Anwesenheitsliste im Spaltenformat. Nun stehe ich ...

PHP
PHP statements mit PHp erzeugen
gelöst Frage von LorderichPHP4 Kommentare

Hallo zusammen, ich habe eine Datei, in welcher per switch und case die Webseiten definiert werden, welche bei Aufruf ...

PHP
PHP - Variable in anderes PHP-Skript mitgeben
gelöst Frage von Jens4everPHP3 Kommentare

Hi zusammen, könnt ihr mir kurz helfen? Ich habe folgendes vor: Ich möchte, dass beim Aufruf von "check1.php" eine ...

Neue Wissensbeiträge
Erkennung und -Abwehr

Sicherheitslücke Spectre und Meltdown: Status prüfen

Anleitung von Frank vor 1 StundeErkennung und -Abwehr

Nach all den Updates der letzten Woche sollte man unbedingt auch den Status prüfen, ob die Sicherheitslücke Spectre und ...

Microsoft Office

Office 2010 Starter erneut auf einer frischen Windows-Version installieren

Tipp von Lochkartenstanzer vor 1 TagMicrosoft Office9 Kommentare

Moin, vor ein paar Tagen schlug bei mir ein Kunde auf, der sein Widnows 7 geschrottet und es inklusive ...

Datenbanken

Upgrade MongoDB 3.4 auf 3.6

Erfahrungsbericht von Frank vor 1 TagDatenbanken

Seit kurzem gibt es das 3.6 Update für die MongoDB: Sicherheit, das Sortieren, Aggregation und auch die Performance wurde ...

SAN, NAS, DAS

Backdoor Zugang und Upload-Bug in vielen Western Digital MyCloud Geräten

Information von Frank vor 1 TagSAN, NAS, DAS2 Kommentare

James Bercegay von der Firma Gulftech hat die Fehler an Western Digital gemeldet und das Unternehmen stellt bereits ein ...

Heiß diskutierte Inhalte
Netzwerke
NTFS-Berechtigung
Frage von Daoudi1973Netzwerke23 Kommentare

Hallo zusammen und frohes neues Jahr (Sorry, ich bin spät dran) Meine Frage: 1- Ich habe einen Ordner im ...

Drucker und Scanner
Gesucht DIN A3 Drucker
Frage von NebellichtDrucker und Scanner15 Kommentare

Hallo, ich möchte einen neuen DIN A3 Drucker kaufen. Um ab und zu, ca. 1 mal die Woche Farbausdrucke ...

iOS
Einladung vom iphone kalender
Frage von jensgebkeniOS15 Kommentare

Hallo Gemeinschaft, folgendes Problem - immer wenn ich von meinem Iphone einen Termin einztrage und diesem Termin Teilnehmer zuweise, ...

Windows Netzwerk
Drucker isolieren in Windows Domäne
gelöst Frage von lcer00Windows Netzwerk14 Kommentare

Hallo zusammen, habe eine Windows-AD (2012R2) in der es einen Druckerserver gibt. Mittlerweile verliere ich das Vertrauen in die ...