PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Uhrzeit in PHP



ldi91
04.08.06, 08:29
ich hab auf 2 servern ein php script laufen. bei einem server geht die uhr um 2 stunden nach. die systemzeit stimmt aber.


web01:~ # date
Fri Aug 4 09:26:53 CEST 2006



lukas@mind-web:~$ date
Fri Aug 4 09:27:25 CEST 2006
.
Die beiden phps gibts unter
http://uic.web01.lusoft.org/index.php
http://uic.web08.lusoft.org/index.php
das daum wird so ermittelt:
$today = date("d.m.y H:i");
hat jemand eine idee woran das liegt?

fuffy
04.08.06, 09:42
Hi!

Wahrscheinlich ein Zeitzonenproblem. Auf dem ersten Server wird die lokale Zeit, auf dem zweiten UTC genommen.

Gruß
fuffy

ldi91
04.08.06, 12:44
aber es ist doch 2 mal genau das gleiche script.

fuffy
04.08.06, 12:49
aber es ist doch 2 mal genau das gleiche script.
Vermutlich sind Systemvariablen anders gesetzt.

Probiers mal auf beiden Servern mit
$today = date('Y-m-d H:i:s.0T');

Gruß
fuffy

ldi91
04.08.06, 14:00
also der eine gibt

2006-08-04 14:59:24.0CEST
und der andre

2006-08-04 12:59:45.0UTC
und ich erkenn da 0UTC/0CEST welches sich unterscheidet leider hab ich keine ahnung was das bedeutet

fuffy
04.08.06, 14:20
Wie ich schon vermutet habe, gibt der erste Server die Zeit in "Central European Summer Time" aus, also in unserer Zeitzone, während der zweite die "Universal Time Coordinated", also die "Weltzeit" verwendet.

Wie und wo werden auf den Servern die locales (LANG bzw. LC_*) gesetzt?

Gruß
fuffy

ldi91
04.08.06, 15:32
nur wo ändert man die zeit-zone?

fuffy
04.08.06, 16:38
nur wo ändert man die zeit-zone?
Normalerweise über die Variable TZ. Die sollte vor dem Start des Apachen auf jeden Fall korrekt, d.h. auf "Europe/Berlin", gesetzt sein. Zudem würde ich zumindest LC_TIME noch auf "de_DE" setzen.

Gruß
fuffy

sysop
04.08.06, 21:09
wie wäre es mit der atomuhr der uni leipzig ?



// holt die atom-zeit aus leipzig
function get_atom_time($atomurl='http://www.uni-leipzig.de/cgi-bin/date/index.htm',$art=0,$collor="white")
{
if(!$file = @file ($atomurl)) return false;

$fcontents = join ('', $file);
$arr = split("[ ]+",$fcontents);
$mo = $arr[1];
$month_array = array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
$mo = (array_search($mo,$month_array))+1;
$mona = $month_array[($mo -1)];
$d = $arr[2];
$t = $arr[3];
$y = $arr[5];
$time_arr = explode(":",$t);
$h = $time_arr[0];
$m = $time_arr[1];
$s = $time_arr[2];
if($art == 0) return " ".$h.":".$m;
else return "&nbsp;".$d.".".$mona.".".$y.'&nbsp;<font color="'.$collor.'">'.$h.":".$m."</font>";
}

PierreS
04.08.06, 21:34
date_default_timezone_set('Europe/Berlin');

ldi91
05.08.06, 08:57
Gibt es diese Funktion nicht?

Fatal error: Call to undefined function: date_default_timezone_set() in /srv/uic.lusoft.org/htdocs/footer.php on line 4

fuffy
05.08.06, 09:09
Hi!


Gibt es diese Funktion nicht?

Fatal error: Call to undefined function: date_default_timezone_set() in /srv/uic.lusoft.org/htdocs/footer.php on line 4
Doch, aber erst seit PHP 5.1.0.

Gruß
fuffy

ldi91
05.08.06, 09:13
dann muss ich wohl php 5.1.0 installieren.

fuffy
05.08.06, 09:16
Installier lieber PHP 5.1.4.

Gruß
fuffy

ldi91
05.08.06, 09:44
ich hab jetzt die atom uhr von sysop zum laufen bekommen

thx