AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Programmieren allgemein [PHP] Zeitzone berücksichtigen - Was mache ich falsch?
Thema durchsuchen
Ansicht
Themen-Optionen

[PHP] Zeitzone berücksichtigen - Was mache ich falsch?

Ein Thema von Matze · begonnen am 17. Aug 2008 · letzter Beitrag vom 28. Sep 2008
Antwort Antwort
Seite 2 von 3     12 3      
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#11

Re: [PHP] Zeitzone berücksichtigen - Was mache ich falsch?

  Alt 7. Sep 2008, 16:11
Zitat von Matze:
Kann man dagegen etwas tun? Denn time() wäre ja wieder nur die Serverzeit und nicht GMT.

Grüße
Hmm.... Wie wäre es damit: time() - date('Z') Sollte ähnliches tun ^^

Und die zweite Meldung bekommst du weg, wenn du abfragst, ob es die funktion gibt, und dann ggf. aufrufst ..


Oder rede ich da jetzt totalen Müll?
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#12

Re: [PHP] Zeitzone berücksichtigen - Was mache ich falsch?

  Alt 7. Sep 2008, 16:20
Moin,

error_reporting einfach auf E_ALL (ist bei PHP5 noch ohne E_STRICT) stellen, und das wars:
Code:
error_reporting(E_ALL);
Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#13

Re: [PHP] Zeitzone berücksichtigen - Was mache ich falsch?

  Alt 7. Sep 2008, 16:27
@Julius: Hm, das funktioniert bei mir leider nicht. Lokal ich bei mir time() das gleiche wie gmmktime() und date('Z') aber trotzdem 7200.

@Andy: Klar, dann sind die Fehler/Warnungen unterdrückt, aber das ist auch nicht das, was ich eigentlich gerne hätte. Das ist ja fast wie ein

Delphi-Quellcode:
try
  // ...
except
end;
*g*
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#14

Re: [PHP] Zeitzone berücksichtigen - Was mache ich falsch?

  Alt 7. Sep 2008, 16:31
Aber ist time() nicht gmtUTC ??
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#15

Re: [PHP] Zeitzone berücksichtigen - Was mache ich falsch?

  Alt 7. Sep 2008, 16:32
Normalerweise müsste time() die am Server eingestellte Zeitzone verwenden (wenn nicht per PHP anders gesetzt).
Daher sehe ich das gerade als etwas widersprüchlich ein, weil date('Z') eine Differenz vorgibt.
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#16

Re: [PHP] Zeitzone berücksichtigen - Was mache ich falsch?

  Alt 7. Sep 2008, 16:34
Könnte es nicht sein, dass date(Z) genau die differenz angibt, die du aufaddieren musst, um aus time() die lokale zeit zu machen?

In der Doku von time() steht zumindest was von gmt
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#17

Re: [PHP] Zeitzone berücksichtigen - Was mache ich falsch?

  Alt 7. Sep 2008, 16:59
Zitat von Matze:
@Andy: Klar, dann sind die Fehler/Warnungen unterdrückt, aber das ist auch nicht das, was ich eigentlich gerne hätte. Das ist ja fast wie ein

Delphi-Quellcode:
try
  // ...
except
end;
*g*
Nicht ganz. Ich zitiere mal die PHP-Doku:
Zitat:
Run-time notices. Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code.
Der weisst dich darauf hin, dass es time() spaeter vielleicht irgendwann nicht mehr geben koennte. Mehr macht der auch nicht. Es ist also kein Fehler oder ne Warnung per se, sondern ein Vorschlag darauf zu verzichten, wenn dein Code spaeter ohne groessere Umbauten verwenden willst. That said, wenn du es trotzdem anders machen willst:

Code:
$utc_time = time() - date('Z') - (date('I') * 3600);
Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von jfheins
jfheins

Registriert seit: 10. Jun 2004
Ort: Garching (TUM)
4.579 Beiträge
 
#18

Re: [PHP] Zeitzone berücksichtigen - Was mache ich falsch?

  Alt 7. Sep 2008, 17:05
Zitat von alcaeus:
Der weisst dich darauf hin, dass es time() spaeter vielleicht irgendwann nicht mehr geben koennte.
Andersrum (gmmktime könnte es bald nicht mehr geben), aber ist nicht so wichtig


Zitat:
wenn du es trotzdem anders machen willst:

Code:
$utc_time = time() - date('Z') - (date('I') * 3600);
Greetz
alcaeus
Könnte es nicht vielleicht doch sein, dass time bereits gmt-Zeit zurückgibt?
  Mit Zitat antworten Zitat
Benutzerbild von alcaeus
alcaeus

Registriert seit: 11. Aug 2003
Ort: München
6.537 Beiträge
 
#19

Re: [PHP] Zeitzone berücksichtigen - Was mache ich falsch?

  Alt 7. Sep 2008, 17:08
Zitat von jfheins:
Könnte es nicht vielleicht doch sein, dass time bereits gmt-Zeit zurückgibt?
Ja...aber auch nur dann, wenn die Zeitzone entsprechend eingestellt ist. Kann man uebrigens auch in der php.ini machen. Wie dem auch sei, dann sollte aber auch date('Z') 0 zurueckliefern

Greetz
alcaeus
Andreas B.
Die Mutter der Dummen ist immer schwanger.
Ein Portal für Informatik-Studenten: www.infler.de
  Mit Zitat antworten Zitat
Benutzerbild von Matze
Matze
(Co-Admin)

Registriert seit: 7. Jul 2003
Ort: Schwabenländle
14.929 Beiträge
 
Turbo Delphi für Win32
 
#20

Re: [PHP] Zeitzone berücksichtigen - Was mache ich falsch?

  Alt 7. Sep 2008, 17:15
Also nun verstehe ich gar nichts mehr.

Das hier:

Code:
$utc_time = time() - date('Z') - (date('I') * 3600);
echo date('d.m.Y G:i:s',$utc_time).' (utc von Andy)
';
date_default_timezone_set('Europe/Berlin');
echo date('d.m.Y G:i:s').' (Berlin)
';
date_default_timezone_set('Europe/London');
echo date('d.m.Y G:i:s').' (London)
';
echo date('d.m.Y G:i:s', time()) . ' (time)';
liefert mir

Code:
07.09.2008 15:17:38 (utc von Andy)
07.09.2008 18:17:38 (Berlin)
07.09.2008 17:17:38 (London)
07.09.2008 17:17:38 (time)
In Berlin ist normalerweise GMT+1 und im Sommer GMT+2. Aber Andys Zeit wäre dann ja GMT-1 (oder falls UTC = GMT eben UTC-1).

Edit:
Code:
echo date("d.m.Y G:i:s Z", 0);
liefert
Code:
01.01.1970 1:00:00 3600
Daher schließe ich daraus, dass irgenwas GMT+1 (= Serverzeitzone) sein muss, sonst stünde da 00:00:00, aber ich weiß auch nicht so genau. Das ist alles irgendwie unlogisch.

Edit 2:
Nun verstehe ich noch weniger. Julius' Vorschlag mit

Code:
time() - date('Z')
liefert nun das korrekte Ergebnis. date() bzw time() enthält somit die Serverzeitzone inklusive Sommerzeit.
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 2 von 3     12 3      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 03:12 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz