Dr.Death hat geschrieben:Um das Thema kurz und bündig zu halten:
Man sollte sein eigenes Profil in die Zeitzone setzen, in die der Server steht.
Ansonsten müsste man das ganze ACP und den Server auf reinen UTC Betrieb einstellen ( Board Default Zeit und das eigene Profil ).
Dann kann man auch die Rennzeiten ohne Probleme in UTC eintragen.
Datenbank intern berechnet das MOD die Zeiten über den UTC UNIX Timestamp.
Daher werde ich auch keine "Anpassung" programmieren.
Also lag ich doch noch nicht ganz falsch. Ok. Ist natürlich 'ne Variante, die eigene Zeitzone zu "verfälschen", aber nicht wirklich die galante Lösung
Daher ja mein Vorschlag, daß mal für eine spätere Version vorzumerken
BTW. Bringt aber aber auch nichts, da ich trotzdem z.B. für's erste Rennen 7:00h eintragen muß, damit die User das richtig als 8:00h sehen ....
EDIT: Ich hab mir das im ACP mal angeschaut und gesehen, daß es ja nur eine Stelle gibt, wo die Zeit berücksichtigt wird. Nämlich da, wo ich die Zeiten auswähle. Nämlich hier:
Code: Alles auswählen
case 'races':
$lang = 'ACP_F1_RACES';
$this->page_title = $lang;
// Check buttons & data
$button_addrace = (isset($_POST['addrace'])) ? true : false;
$button_add = (isset($_POST['add'])) ? true : false;
$button_del = (isset($_POST['del'])) ? true : false;
$button_edit = (isset($_POST['edit'])) ? true : false;
$b_day = request_var('c_day' , $user->format_date(time(),"d") );
$b_month = request_var('c_month' , $user->format_date(time(),"n") );
$b_year = request_var('c_year' , $user->format_date(time(),"Y") );
$b_hour = request_var('c_hour' , $user->format_date(time(),"G") );
$b_minute = request_var('c_minute' , 0 );
$b_second = request_var('c_second' , 0 );
Das hab ich nun durch folgendes ersetzt:
Code: Alles auswählen
case 'races':
$lang = 'ACP_F1_RACES';
$this->page_title = $lang;
$sql = 'SELECT config_value
FROM ' . CONFIG_TABLE . '
WHERE config_name = "board_timezone"';
$result = $db->sql_query($sql);
$timezone = $result;
$db->sql_freeresult($result);
$sql = 'SELECT config_value
FROM ' . CONFIG_TABLE . '
WHERE config_name = "board_dst"';
$result = $db->sql_query($sql);
$dst = $result;
$db->sql_freeresult($result);
$board_timezone = ($timezone + $dst) * 3600;
// Check buttons & data
$button_addrace = (isset($_POST['addrace'])) ? true : false;
$button_add = (isset($_POST['add'])) ? true : false;
$button_del = (isset($_POST['del'])) ? true : false;
$button_edit = (isset($_POST['edit'])) ? true : false;
$b_day = request_var('c_day' , $user->format_date((time()- $board_timezone),"d") );
$b_month = request_var('c_month' , $user->format_date((time()- $board_timezone),"n") );
$b_year = request_var('c_year' , $user->format_date((time()- $board_timezone),"Y") );
$b_hour = request_var('c_hour' , $user->format_date((time()- $board_timezone),"G") );
$b_minute = request_var('c_minute' , 0 );
$b_second = request_var('c_second' , 0 );
Was passiert jetzt (zumindest bei mir)? Ich trage ja die Zeit in die Tablle ein. Bisher wurde banal die Zeit eingetragen, die ausgewählt hab, aber nicht die Zeit im Verhälnis zum Serverstandort. Funktioniert natürlich prächtig in D-Land, aber ... Ich bin jetzt hergegangen und ziehe von der eingegebenen Zeit die Board Zeitzone und die DST (Sommer-/Winterzeit) ab. Damit wird - bei korrekt eingestellter Zeitzone und DST - auf dem Server die UTC Zeit eingetragen (unabhängig vom Standort). Alle anderen Anzeigen der Zeit müssten somit wieder stimmen ohne daß ich mir jetzt Gedanken im ACP machen muß. Zumindest funktioniert das bei mir so ...
Der Code ist bestimmt noch verbesserungswürdig. Sollte ich damit komplett falsch liegen oder einen Denkfehler haben, sagts mir einfach. Nobody is perfect
Danke und Gruß
femu