Serverzeit

Alles, was PHP betrifft, kann hier besprochen werden.

Serverzeit

Postby Makconner » 22. February 2006 12:51

Jeder kennt sicher die Funktion date()

Diese nimmt die Zeit von dem Client... was eher schlecht ist, denn will man eine zeit in der Datenbank festhalten dann ist es schlecht wenn der Client nur seine Rechner-Uhr verstellen muss im das ganze zu manipulieren...

hab keine Funktion für Serverzeitermittlung gefunden... gibt’s da etwas?
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby KingCrunch » 22. February 2006 13:00

date() ohne Argumenent nimmt den Timestamp von time() und die is meines Wissens die Zeit vom Server :? Ist es nicht auch so, dass der Client sene persönliche Zeit garnicht mitsendet?
Nicht jeder Fehler ist ein Bug ...
KingCrunch
 
Posts: 1724
Joined: 26. November 2005 19:25

Postby Makconner » 22. February 2006 13:09

hmm... muss ich prüfen... danke erstmal
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby Wiedmann » 22. February 2006 13:39

Jeder kennt sicher die Funktion date() Diese nimmt die Zeit von dem Client...

Da PHP und somit das Script auf dem Server läuft, sind alle Datum und Zeitfunktionen von der Zeit des Servers abhängig. Wurde aber ja schon gesagt.

denn will man eine zeit in der Datenbank festhalten

Um die (aktuelle) Zeit in der DB festzuhalten kennt auch MySQL selbst viele Zeit/Datum - Funktionen inkl spezieller Spaltentypen extra für Datum/Zeit.
Wiedmann
AF Moderator
 
Posts: 17102
Joined: 01. February 2004 12:38
Location: Stuttgart / Germany

Postby Makconner » 22. February 2006 17:58

Ja Jungs.. ich glaub das war ein Fehler den ich des nachts gegen 2 Uhr hatte nachdem mir die 3 Kannen Kafee ausgegangen sind....

Denn wenn man das ganze auf der Home-Station testet und dabei die uhrzeit am "Pseudo-Host" ändert..... ists ja in dem Fall auch der Server :mrgreen:

Öhm..... ja... soviel dazu.... das nächste mal Testen wenn man klarer denken kann :lol:
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby Makconner » 23. February 2006 09:34

OK... Nachtrag .... ich hab mal die ganzen Attribute der Funktion date() gecheckt… zumindest denke ich das.. hab mal bissel gesucht…. Dabei habe ich keines gefunden das mir einen Wert in Sekunden zurückliefert der ab dem Datum X läuft. So was kennen wir von C++. Gibt es das hier auch? Die Systemzeit in Sekunden ab einem bestimmten Datum?
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby M3g4Star » 23. February 2006 09:49

schau dich mal hier um. D akannst du auch Sekunden ansprechen.

:wink:

Code: Select all
<?php
$datum="01.02.2006";
$d=explode(".",$datum);
$unix=mktime(0,0,0,$d[1],$d[0],$d[2]);
$stamp=time();
$diff=$stamp-$unix;
$diff=$diff/86400;
echo 'Es sind '.floor($diff).' Tage seit dem '.$datum.' vergangen';
?>


<== das Script zeigt dir an wieviele Tage seit dem angegeben Datum vergangen sind.
User avatar
M3g4Star
 
Posts: 145
Joined: 25. January 2006 07:46
Location: München

Postby Makconner » 23. February 2006 10:21

Jo danke.. und jetzt ne total dämliche Frage... ja ich weiss.... das ist Grundwissen (wirds geleich gehen) aber ich frag trotzdem....

ich will ein array mit ner Variable steuern aber er nimmts nicht an.... ich kans nicht sehen... sicher muss ich irgend welche zeichen setzen

Code: Select all
print $tmp_zeit4 = ($tmp_monate[$tmp_monat]*60*60*24).'<br>';
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby M3g4Star » 23. February 2006 10:31

Also das :

Code: Select all
$tmp_monate[$tmp_monat]


geht so ...
User avatar
M3g4Star
 
Posts: 145
Joined: 25. January 2006 07:46
Location: München

Postby Makconner » 23. February 2006 10:34

ja sag mal.. bin ich blind? das hab ich doch so.. und geht nicht.... :?:
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby Makconner » 23. February 2006 10:40

Code: Select all
$tmp_monat=date(m);
print $tmp = $tmp_monate[$tmp_monat].'<br>';


der liefert garnichts zurück? hööö?? :?:
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby Makconner » 23. February 2006 10:44

aaarg.. habs... das "m" liefert bei Februar nicht 2 sonder 02 .... das rafft der natürlich in einem Array nicht und liefert "" zurück.... :!:
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby M3g4Star » 23. February 2006 10:47

Siehste .. lieber Versuchen und immre der Ursache auf den Grund gehen. Sprich in deinem Fall :
Code: Select all
 echo $tmp_monat;


und das hast ja auch gemacht ;)

Du musst in deinem Fall das machen

Code: Select all
$tmp_monat=date(n);
User avatar
M3g4Star
 
Posts: 145
Joined: 25. January 2006 07:46
Location: München

Postby Makconner » 23. February 2006 10:57

jo genau... schau mal bitte in de Code....
Die Logik sollte stimmen...
Das ist ne Zeitberechnung der Sekunden sein Crhristi Geburt ohne Schaltjahr.
Code: Select all
<?php
Print co_time();



function co_time()
{
$tmp_monate[01]= 0;
$tmp_monate[02]= 31;
$tmp_monate[03]= 59;
$tmp_monate[04]= 90;
$tmp_monate[05]= 120;
$tmp_monate[06]= 151;
$tmp_monate[07]= 181;
$tmp_monate[08]= 212;
$tmp_monate[09]= 243;
$tmp_monate[10]= 273;
$tmp_monate[11]= 304;
$tmp_monate[12]= 224;
$tmp_totaltime=   
(date('s'))+
(date('i')*60)+
(date('h')*60*60)+
(date('d')*60*60*24)+
(($tmp_monate[(date("m")-0)])*60*60*24)+
(date('y')*60*60*24*365);
return $tmp_totaltime;
}
?>
User avatar
Makconner
 
Posts: 153
Joined: 14. February 2006 16:00

Postby M3g4Star » 23. February 2006 11:33

Code: Select all
(($tmp_monate[(date("m")-0)])*60*60*24)+


das ist ja wohl mist oder ?? nicht dein ernst ? du willst den "Jahrestag" manuell berechnen ?? *grins*

Mensch ich hab dir die seite doch nicht umsonst gepostet. Einfach mal nachlesen.

Man .. was willst du machen ???? Seit Christi ???

ok dann mach das lieber so :

Code: Select all
print co_time();

function co_time()
{
$s = date('s');               // für die Sekunden (mit Nullen!)
$i = date('i')*60;            // für Minuten (in Sek mit Nullen!)
$g = date('G')*60*60;         // für Stunden in Sekunden (ohne Nullen)
$z = date('z')*24*60*60;      // für Tage des Jahres in Sekunden
$y = date('Y')*365*24*60*60;  // Für die Jahre in Sekunden

$sek_seit_christi_geb = $s+$i+$g+$z+$y;

return $sek_seit_christi_geb;
}


ungetestet und ich weiß nicht recht ob's da Probs mit den Nullen gibt. :?:
User avatar
M3g4Star
 
Posts: 145
Joined: 25. January 2006 07:46
Location: München

Next

Return to PHP

Who is online

Users browsing this forum: No registered users and 18 guests