tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
5
ZUGRIFFE
1748
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    UnkiDunki UnkiDunki ist offline Mitglied
    Registriert seit
    Apr 2008
    Beiträge
    16
    Hi,

    ich habe ein Formular in dem man ein Datum angeben kann. Dieses wird dann in eine MySQL-Datenbank geschrieben. Das ganze wandel ich vorher in den entsprechenden Timestamp um:

    PHP-Code:
    $date date("Y-m-d H:i:s",mktime($hour,$minutes,$seconds,$month,$day,$year)); 
    Für den 7.12.2009 0:00Uhr habe ich dann den Wert "2009-12-07 00:00:00" in meiner DB stehen. Korrekt also.
    Das Problem ist jetzt, den Timestamp aus der DB zu holen (mache ich mit "UNIX_TIMESTAMP" und wieder entsprechend aufzuschlüsseln:

    PHP-Code:
    $hour date("H",$timestamp); 
    Hier bekomme ich für die Stunde den Wert "1", da es sich ja um ein Datum aus dem Dezember handelt. Für z.B. einen Juli würde ich korrekt den Wert "0" bekommen.
    Meine Frage: Wie schlüssel ich das ganze wieder auf ohne mir über Sommer/Winterzeit Gedanken machen zu müssen.
    Also praktisch immer den Wert, wie ich ihn in der Datenbank sehe auch so wieder zurückzubekommen?

    Habe schon gegoogelt und gesehen, dass man mit
    PHP-Code:
    date('I'$timestamp
    herausbekommen kann, ob es sich jetzt um Sommerzeit handelt oder nicht.
    Bei dem Wert "0" wäre die Zeit also korrekt (z.B. im Juli), bei "1" hätte ich das Problem der "falschen" Stunde. Aber wie mache ich mir das jetzt genau zu Nutze oder gibt es ne Alternative zu date, wo ich mir um diese Geschichten keine Gedanken machen muss?

    Vielen Dank im Voraus
     

  2. #2
    Avatar von Steusi
    Steusi Steusi ist offline Nasenbär
    Registriert seit
    Sep 2006
    Ort
    MV
    Beiträge
    431
    Eine Frage vorweg, warum liest du eigentlich die Zeit so genau ein, mit Stunde Minute und Sekunde

    Gut aber wenn du keine Sommerzeit haben möchtest, dann rechne doch zur Sommerzeit einfach von deinem Datenbankeintrag eine Stunde zurück

    PHP-Code:
    if(date('I'$timestamp) == 1){
        
    $date -= 3600;

     
    Gruß Steusi

    Sollte dir ein Tipp von mir geholfen haben, freue ich mich auch über eine kleine Bewertung.
    Und wenn ein Problem gelöst ist, markiere deinen Beitrag bitte als erledigt.
    PHP-Code:
    $fehler "dummer Tippfehler";
    echo(
    "Und ist das Programm noch so klein, es passt immer noch ein ".$fehler". rein!"); 

  3. #3
    Avatar von Dr Dau
    Dr Dau Dr Dau ist offline ich wisch hier durch
    Registriert seit
    Feb 2005
    Ort
    hinterm Mond gleich Links
    Beiträge
    6.160
    Blog-Einträge
    4
    Hallo!

    Ich verstehe auch nicht ganz was es soll.
    Wenn ich heute einen Eintrag für den 31.12. um 0:00 Uhr mit dem Betreff "Feuerwerk" mache, dann ist der Termin im Dezember immernoch am 31.12. um 0:00 Uhr.
    Es sei denn ich stelle meine Uhr nicht um.

    Gruss Dr Dau
     
    Schri-Schra-Schrödi *g*
    mehrspaltiges/zeiliges Seitenlayout mit DIV's und CSS
    Dinge, die mit Tabellen besser klappen als mit CSS
    Ausgabe von Datum/Zeit unabhängig von der Server Zeitzone [php]
    Meine Links zum Thema Linux (Last update: 29.10.2011)
    Kein Busen ist so flach wie das Niveau dieser Party!
    ----
    Alte Weisheit: wer uns in den Arsch kriecht wird beschissen!
    ----
    Ich habe 3 Kinder und kein Geld!
    Warum kann ich nicht keine Kinder haben und 3 Geld?! (Homer Jay Simpson)

  4. #4
    Avatar von Steusi
    Steusi Steusi ist offline Nasenbär
    Registriert seit
    Sep 2006
    Ort
    MV
    Beiträge
    431
    Ich denke eher, die Datenbank liegt auf einem deutschen Server, auf dem vlt. amerikanische Kunden drauf zugreifen.
    Das sich der Datenbankeintrag nicht ändert weiß er ja!
    Aber wenn meine Theorie wirklich stimmt, gibt es dafür eine bessere Lösung und zwar beim Einlesen in die DB!
     
    Gruß Steusi

    Sollte dir ein Tipp von mir geholfen haben, freue ich mich auch über eine kleine Bewertung.
    Und wenn ein Problem gelöst ist, markiere deinen Beitrag bitte als erledigt.
    PHP-Code:
    $fehler "dummer Tippfehler";
    echo(
    "Und ist das Programm noch so klein, es passt immer noch ein ".$fehler". rein!"); 

  5. #5
    Avatar von vfl_freak
    vfl_freak vfl_freak ist offline Mitglied Diamant
    Registriert seit
    Aug 2007
    Ort
    Niedersachsen
    Beiträge
    2.161
    Moin,

    ich denke, das, was ihr sucht, ist die "koordinierte Weltzeit" UTC !

    Guckst Du hier: http://de.wikipedia.org/wiki/UTC

    Gruß
    Klaus
     
    Es ist noch kein Meister vom Himmel gefallen - sonst hätte man schon längst seine Leiche gefunden !!

    Falls ich helfen konnte, wäre eine Bewertung oder ein Danke nett ;-)
    -------------------------------------------------------------------------------------------------
    Ich beantworte keine Fragen per PN !!
    Stellt Eure Fragen im Forum - dann haben alle etwas davon !!

  6. #6
    UnkiDunki UnkiDunki ist offline Mitglied
    Registriert seit
    Apr 2008
    Beiträge
    16
    Erst mal vielen Dank für euer Feedback
    Also...

    Zitat Zitat von Steusi
    Eine Frage vorweg, warum liest du eigentlich die Zeit so genau ein, mit Stunde Minute und Sekunde
    So genau brauche ich das garnicht. Jedenfalls nicht auf die Sekunde...
    Prinzipiell handelt es sich nämlich um Termine. Muss also nur auf die Minute genau sein, wobei ich auch da im Formular nur zwischen den Werten {0,15,30,45} wählen lasse...
    Wenn ich jetzt bei Sommerzeit einfach eine Stunde zurückrechne, dann habe ich nie mehr Probleme damit? Denn wie dir, Dr Dau, ging es mir auch...
    Zitat Zitat von Dr Dau
    Wenn ich heute einen Eintrag für den 31.12. um 0:00 Uhr mit dem Betreff "Feuerwerk" mache, dann ist der Termin im Dezember immernoch am 31.12. um 0:00 Uhr.
    So habe ich mir das nämlich auch gedacht. Ich möchte den "Zirkus" mit Sommerzeit garnicht Ich will einfach den Wert, wie er in der DB steht (denn dort ist es ja korrekt) entsprechend formatiert ausgegeben haben und mir nicht Gedanken drüber machen müssen, wo jetzt mein Server steht und von wo die Leute drauf zugreifen...

    Zitat Zitat von Steusi
    Aber wenn meine Theorie wirklich stimmt, gibt es dafür eine bessere Lösung und zwar beim Einlesen in die DB!
    Aber wenn beim Einlesen in die DB und der Wert in der DB doch korrekt sind...
    Beim 31.12. - 0:00 Uhr habe ich dort dann auch wirklich 0:00 Uhr stehen...

    @vfl_freak: Mmm... also gmdate() gucke ich mir gleich mal an und gucke, was ich damit für Ergebnisse erziele...

    Fazit: Will garnicht wissen, wo ich noch überall diese Sommerzeitproblematik "unbeschwert" ignoriert habe
     

Ähnliche Themen

  1. Antworten: 3
    Letzter Beitrag: 02.06.06, 05:58
  2. Dreamweaver: Probleme in Entwurfsansicht wegen SSI
    Von JimboZ im Forum HTML-Editoren
    Antworten: 2
    Letzter Beitrag: 07.04.04, 13:56
  3. Probleme mit Forum Script wegen CHMOD 644
    Von riddler2kone im Forum Hosting & Webserver
    Antworten: 6
    Letzter Beitrag: 29.01.02, 23:57