Ergebnis 1 bis 6 von 6

Thema: Zend_Date->add und Zeitumstellung(DST)

  1. #1
    Erfahrener Benutzer
    Registriert seit
    22.03.2007
    Ort
    Böbingen/Rems
    Beiträge
    734
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard Zend_Date->add und Zeitumstellung(DST)

    Hi

    Zur Zeitumstellung am Wochenende ist mir mal wieder was aufgefallen.

    Zeitzone ist Deutschland. Ein Script läuft Täglich um 00:00:00 per Cronjob und addiert immer 23 Stunden, 59 Minuten und 59 Sekunden zum aktuellen Datum. Ich bekomme dann z.B. den 20.10.2008 23:59:59. Am 26.10.2008 00:00:00 bekam ich aber den 26.10.2008 22:59:59.

    Mit ist auch bewusst wieso ich das Ergebnis bekomme. Wie komme ich aber an das Ergebnis 26.10.2008 23:59:59.

    PHP-Code:
    ini_set('date.timezone''Europe/Berlin');

    $date = new Zend_Date(mktime(00010262008));
    $date->add(23Zend_Date::HOUR);
    $date->add(59Zend_Date::MINUTE);
    $date->add(59Zend_Date::SECOND);
    echo 
    $date->get(Zend_Date::DATE_SHORT) . ' ' $date->get(Zend_Date::TIME_MEDIUM);

    # 26.10.2008 22:59:59 
    Ich dachte eigentlich der Parameter
    fix_dst ist dafür da, leider funktioniert das aber auch nicht.

    Mfg Akkie

  2. #2
    Moderator Avatar von thomas
    Registriert seit
    16.12.2006
    Beiträge
    1.349
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Na dann denk mal ganz logisch nach...

    Du addierst IMMER 23 Stunden, 59 Minuten und 59 Sekunden... und das manuell.

    Fix-DST hat hier doch gar nix zu tun...
    Er addiert 3h bis 3Uhr und dann wird auch 2Uhr umgestellt und er addiert die restlichen 20 Stunden 59:59. Na logisch das da was falsches rauskommt.

    Wenn du einen Tag addieren willst dann solltest Du genau das tun... einen Tag addieren und nicht 24h... dann greift auch die Korrektur der Zeitumstellung ohne Probleme. Und die doofe Sekunde ziehst Du einfach im Nachhinein ab.
    Mfg
    Thomas Weidner
    I18N Team Leader, Zend Framework
    Wir schwarzen Schafe sind die heimlichen Herrscher der Welt... unser schwarzer Humor ist unsere beste Waffe
    www.thomasweidner.com

  3. #3
    Erfahrener Benutzer
    Registriert seit
    22.03.2007
    Ort
    Böbingen/Rems
    Beiträge
    734
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Hi

    Naja, ganz so logisch war das für mich nicht wenn man nicht weiß wie fix_dst arbeitet. Nach deiner Erklärung ist der Groschen aber gefallen.

    Mfg Akkie

  4. #4
    Moderator Avatar von thomas
    Registriert seit
    16.12.2006
    Beiträge
    1.349
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Man könnte es auch anders sehen...

    24 Stunden sind immer 24 Stunden.
    Aber 1 Tag kann mal 23 Stunden und mal 25 Stunden haben.
    Kommt halt auf die Zeitumstellung an.
    Mfg
    Thomas Weidner
    I18N Team Leader, Zend Framework
    Wir schwarzen Schafe sind die heimlichen Herrscher der Welt... unser schwarzer Humor ist unsere beste Waffe
    www.thomasweidner.com

  5. #5
    Erfahrener Benutzer
    Registriert seit
    22.03.2007
    Ort
    Böbingen/Rems
    Beiträge
    734
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Hi

    Ich habe noch ein Problem. Und zwar setzen wir standardmäßig UTC als Zeitzone. Jede Instanz von Zend_Date bekommt dann die Zeitzone des Users aus der Datenbank gesetzt.

    Hier scheint dann aber fix_dst nicht zu funktionieren.

    PHP-Code:
    ini_set('date.timezone''UTC');

    Zend_Date::setOptions(array('fix_dst' => true));

    $date = new Zend_Date(mktime(220010252008));
    $date->setTimezone('Europe/Berlin');
    $date->add(1Zend_Date::DAY);
    $date->sub(1Zend_Date::SECOND);
    echo 
    $date->get(Zend_Date::DATE_SHORT) . ' ' $date->get(Zend_Date::TIME_MEDIUM); # 26.10.08 22:59:59 
    In der Doku steht das fix_dst nicht wirkt wenn ich in meiner Zend_Date Instanz die Zeitzone GMT oder UTC setze. Das mache ich auch nicht. Wo liegt der Fehler?

    Mfg Akkie

  6. #6
    Erfahrener Benutzer
    Registriert seit
    22.03.2007
    Ort
    Böbingen/Rems
    Beiträge
    734
    Thanks
    0
    Thanked 0 Times in 0 Posts

    Standard

    Hi Thomas,

    kannst du mir sagen ob das ein Bug ist. Wenn ja kümmerst du dich schon darum oder soll ich ein Bugreport schreiben?

    Mfg Akkie

Ähnliche Themen

  1. Zend_Date und DST
    Von Ota im Forum Lokalisierung & Internationalisierung
    Antworten: 7
    Letzter Beitrag: 04.04.2008, 08:28
  2. Zend_Date Fehler?
    Von freps im Forum Konzepte & Ideen
    Antworten: 1
    Letzter Beitrag: 06.11.2007, 17:14
  3. Verständnisfrage zu Zend_date
    Von Timo Trallala im Forum Einsteigerfragen
    Antworten: 8
    Letzter Beitrag: 02.07.2007, 13:29
  4. Zend_date
    Von Timo Trallala im Forum Einsteigerfragen
    Antworten: 7
    Letzter Beitrag: 25.06.2007, 22:42
  5. zend_date verbuggt???
    Von Daniel84 im Forum Lokalisierung & Internationalisierung
    Antworten: 5
    Letzter Beitrag: 24.01.2007, 21:24

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •