Ergebnis 1 bis 7 von 7

Thema: Timestamp zu groß um in Stunden umzurechnen ?

  1. #1
    Meister(in) Avatar von Teron Gerofied
    Registriert seit
    26.01.2008
    Ort
    serverraum
    Alter
    26
    Beiträge
    347
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard Timestamp zu groß um in Stunden umzurechnen ?

    Hi,

    bin hier auf ein Merkwürdiges Problem gestoßen:

    ich habe folgenden Code:

    idate('H', $time);

    $time ist in meinem Fall "84448".

    Wenn ich aber mit date oder idate damit die Stunden rausfinden will, gibt er mir 0 zurück. Ich hab jetzt mal ein bisschen rumgerechnet und prinzipell versteh ich den Fehler auch irgendwo, aber ich habe da eine größere If-Abfrage, die mir einen Timestamp in Sekunden, Minuten, Stunden und Tagen ausgibt. Ab 7 Tagen wird das volle Datum angezeigt.

    Hier der Code (ich glaub da liegt irgendwo ein Denkfehler, aber der Rest funktioniert bis jetzt immer tadellos):

    PHP-Code:
    function getpostdate$time )
    {
        
    $dif time() - $time;
        
    $done "";
        if(
    $dif 604800// 604800 = Eine Woche in Sekunden
        
    {
            
    $done date("d.m.Y"$time);
        } elseif(
    $dif 86400// 86400 = Tag in Sekunden
        
    {
            
    $days idate'd'$dif );
            if(
    $days 1)
                
    $done $days ' Tagen';
            else
                
    $done 'einem Tag';
            
        } elseif(
    $dif 3600// 3600 = 1 Std
        
    {
            
    $hours idate('H'$dif);
            if(
    $hours 1)
                
    $done $hours ' Stunden';
            else
                
    $done 'einer Stunde';
        } elseif(
    $dif 60)
        {
            
    $minutes =idate('i'$dif);
            if(
    $minutes 1)
                
    $done $minutes ' Minuten';
            else
                
    $done 'einer Minute';
        } else {
            
    $seconds=idate('s'$dif);
            if(
    $seconds 1)
                
    $done $seconds ' Sekunden';
            else
                
    $done 'Gerade eben';
        }
        return 
    $dif;

    Hat da jemand ne Idee ?

    EDIT:
    Ich schätze, dass es übrigens mit den Zeitzonen GMT+1 zu tun hat ...

    Lg
    Achtung: Dies ist ein alter Thread im HTML und Webmaster Forum
    Diese Diskussion ist älter als 90 Tage. Die darin enthaltenen Informationen sind möglicherweise nicht mehr aktuell. Erstelle bitte zu deiner Frage ein neues Thema im Forum !!!!!
    Geändert von Teron Gerofied (10.01.2011 um 14:26 Uhr)
    PHP-Code:
    if(isset($this) || !isset($this)){ // that's the question... 

  2. #2
    Unregistriert
    Gast

    Standard AW: Timestamp zu groß um in Stunden umzurechnen ?

    Du solltest dir mal Gedanken machen, was einUnix-Timestamp ist, vielleicht fällt dir dann auf, dass das total unsinnig ist, was du da mit date/idate veranstaltest

  3. #3
    Forum Guru Avatar von The User
    Registriert seit
    28.10.2007
    Ort
    Zwischen Pazifik und Atlantik...
    Beiträge
    4.044
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard AW: Timestamp zu groß um in Stunden umzurechnen ?

    Tage: $dif / 86400
    Stunden: $dif / 3600 % 24
    Minuten: $dif / 60 % 60
    Sekunden: $dif % 60
    So einfach geht das, man muss nicht bei jedem Scheiß mit den PHP-Standarfunktionen rumhampeln, scheint ne schlechte Eigenschaft bei PHP-Programmierern zu sein, überall müssen date, array_*, preg_replace etc. ins Boot geholt werden…

  4. #4
    Meister(in) Avatar von Cujo
    Registriert seit
    11.07.2008
    Beiträge
    438
    Danke
    1
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: Timestamp zu groß um in Stunden umzurechnen ?

    Ich würde dir empfehlen, am Anfang die Zeitzone festzulegen:

    PHP-Code:
    date_default_timezone_set('Europe/Berlin'); 
    Das habe ich hier auch nochmal näher erklärt:

    Adventskalender erstellen - Die Datumsabfrage

  5. #5
    Meister(in)
    Themenstarter
    Avatar von Teron Gerofied
    Registriert seit
    26.01.2008
    Ort
    serverraum
    Alter
    26
    Beiträge
    347
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: Timestamp zu groß um in Stunden umzurechnen ?

    Zitat Zitat von The User Beitrag anzeigen
    Tage: $dif / 86400
    Stunden: $dif / 3600 % 24
    Minuten: $dif / 60 % 60
    Sekunden: $dif % 60
    So einfach geht das, man muss nicht bei jedem Scheiß mit den PHP-Standarfunktionen rumhampeln, scheint ne schlechte Eigenschaft bei PHP-Programmierern zu sein, überall müssen date, array_*, preg_replace etc. ins Boot geholt werden…
    Ach scheiße stimmt Modulo gibts ja auch noch vergesse regelmäßig die existenz dieses Operators
    PHP-Code:
    if(isset($this) || !isset($this)){ // that's the question... 

  6. #6
    Großmeister(in) Avatar von MyXoToD
    Registriert seit
    07.11.2007
    Ort
    Mainz
    Alter
    24
    Beiträge
    507
    Danke
    0
    Bekam 1 mal "Danke" in 1 Posting

    Standard AW: Timestamp zu groß um in Stunden umzurechnen ?

    Das was du gemacht hast gibt dir den Stand der Stunde, der um diese Zeit war. Also in dem einen Fall genau 1 Tag nach dem 01.01.1970 und da war halt dann auch 0 ^^ Klar, das er dir da 0 zurückgibt.
    Don't follow me, I run into walls.

  7. #7
    Großmeister(in)
    Registriert seit
    09.12.2008
    Ort
    Berlin
    Alter
    38
    Beiträge
    666
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings
    Blog-Einträge
    1

    Standard AW: Timestamp zu groß um in Stunden umzurechnen ?

    Zitat Zitat von The User Beitrag anzeigen
    Tage: $dif / 86400
    Stunden: $dif / 3600 % 24
    Minuten: $dif / 60 % 60
    Sekunden: $dif % 60
    So einfach geht das, man muss nicht bei jedem Scheiß mit den PHP-Standarfunktionen rumhampeln, scheint ne schlechte Eigenschaft bei PHP-Programmierern zu sein, überall müssen date, array_*, preg_replace etc. ins Boot geholt werden…
    Naja... du hast natürlich recht, wenn es um die Berechnung reiner Zeiträume geht, und nicht um die Berechnung konkreter Tage, dann kann und sollte man es so machen wie du schreibst.
    Wenn man aber konkrete Daten berechnen möchte ist es durchaus sinnvoll die vorgesehenen Funktionen zu verwenden. Da können sich sonst sehr leicht Fehler einschleichen, einer der beliebtesten z.B. das Nicht-Berücksichtigen von Sommer-/Winterzeit.


    Passt zwar nicht exakt zum Thema, aber trotzdem ein interessanter Link über den ich kürzlich gestolpert bin:
    http://pumka.net/2010/10/24/why-mysq...rent-from-php/
    "Programming today is a race between software engineers
    striving to build bigger and better idiot-proof programs,
    and the universe trying to build bigger and better idiots.
    So far, the universe is winning."
    Rick Cook

Ähnliche Themen

  1. PHP Uhrzeit plus 8 Stunden
    Von !Florian im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 4
    Letzter Beitrag: 21.08.2010, 11:15
  2. Uhrzeit 2 Stunden vor
    Von ludgerf321 im Forum Forum-Hilfe.de intern
    Antworten: 2
    Letzter Beitrag: 29.03.2010, 10:44
  3. MySQL ISO 8601-Timestamp als int-timestamp auslesen.
    Von The User im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 0
    Letzter Beitrag: 14.07.2008, 16:31
  4. text automatisch groß/klein/groß/klein....
    Von Telmata im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 9
    Letzter Beitrag: 17.03.2008, 21:38
  5. timestamp
    Von cookie im Forum PHP Forum - Apache - CGI - Perl - JavaScript und Co.
    Antworten: 6
    Letzter Beitrag: 21.01.2006, 23:37

Stichworte

Berechtigungen

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