php.de

Zurück   php.de > Webentwicklung > PHP Einsteiger > PHP Tipps 2006

 
 
LinkBack Themen-Optionen Thema bewerten
Alt 10.05.2006, 20:42  
Gast
 
Beiträge: n/a
Standard [Erledigt] Anzahl Tage zwischen 2 Unix Timestamps

Hallo

Ich zerbreche mir gerade den Kopp darüber wie man das sauber bewerkstelligen könnte.

In einem Formular konnte man zuvor aus einem Selecteld ein Datum auswählen. Daraus wurde beim abspeichern in die DB ein unix timestamp gemacht.

Hat man z.B. das Datum "14.05.2006" ausgewählt, so wurde der unix timestamp für den 14.05.2006, 00:00:00 ermittelt (also genau zu Beginn des 14.05.2006.

Soweit die Theorie. Nun geht's darum, diesen Timestamp nicht als Datum auszugeben sondern als Anzahl Tage die es noch dauert, bis dieses Datum erreicht ist.

Dabei zählt der aktuelle Tag schon als Tag, auch wenn "morgen" schon der 14.05.2006 wäre. Wenn gerade jetzt der 14.05.2006 ist, sollte das Ergebnis "0" sein. Also 0 Tage. Wenn nun aber schon der 15.06.2006 ist, müsste das Ergebnis -1 sein, usw.

Mein Lösungsansatz wäre:
- vom aktuellen Timestamp alle vergangenen Sekunden dieses Tages abziehen, bis dahin, wo der Tag angefangen hat (auf die Sekunde genau).

- den gerade berechneten "aktuellen" Timestamp vom Timestamp aus der DB subtrahieren.

- Das Ergebnis durch (24*60*60) teilen.


Geht das noch eleganter?
 
Sponsor Mitteilung
PHP Code Flüsterer

Registriert seit: 21.08.2005
Beiträge: 4682
PHP-Kenntnisse:
Fortgeschritten

Alt 10.05.2006, 20:45  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Mal Lust hierrein zu schaun, ist fast das gleiche in Wochen:
http://www.phpfriend.de/forum/ftopic57428.html
Zergling-new ist offline  
Alt 10.05.2006, 21:00  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Naja ansich gehts doch ganze einfach

date ('d.m.y', TIMESTAMP_IN_DB - TIMESTAMP_JETZT);

Fertig das is alles!
Flor1an ist offline  
Alt 10.05.2006, 21:05  
Gast
 
Beiträge: n/a
Standard

das gibt mir aber nur ein Datum aus, wenn ich mich nicht irre?
 
Alt 10.05.2006, 21:06  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Richtig und daher falsch. Außerdem musst du ermitteln welches Datum größer ist

max(), min()

Schau dir doch einfach den Thread an, den ich gepostet habe. Modifiziert ist der genau, das was du suchst.
Zergling-new ist offline  
Alt 10.05.2006, 21:17  
Gast
 
Beiträge: n/a
Standard

habe mir den Thread angeschaut. Danke für den Tipp. Ich setze mal meinen Lösungsweg wie oben angedeutet um... ceil spart mir vielleicht etwas arbeit, aber ich bin mir nicht ganz sicher was in den "kritischen zonen" passiert...
 
Alt 10.05.2006, 21:23  
Erfahrener Benutzer
 
Registriert seit: 21.05.2008
Beiträge: 9.937
Zergling-new wird schon bald berühmt werden
Standard

Also im Prinzip musst du als Event-Datum strtotime("2006-05-14 00:00:00") verwenden und als heutiges Datum time().

Du bekommst die Differenz in Sekunden. Was heißt das wenn der Event noch kommt:
Im Prinzip AUFRUNDEN(EVENT - HEUTE). Denn wenn es noch eine Sekunde ist (~0,00001 Tage), heißt das es ist noch ein Tag.

Wenn es der 15.05.2006, 00:00:01 ist, dann ist die Differenz 24*60*60 + 1. Also grob ~1,00001 Sekunden. Hier musst du ABRUNDEN (HEUTE - EVENT).

Alles nur Blatt-Papier-Logik (ich hoffe ich hab jetzt keinen Mist verzapft, lag heut nachmittag über mit Bier im Schloßgarten :wink: )

Edit: Ich glaub so ganz stimmt das mit time() nicht, aber ist eigentlich relativ simpel. Nimm einfach immer den heutigen Tag, 00:00:00 (also die erste (eigentlich nullte) Sekunde des Tages) und zieh es vom Termin (auch null uhr) ab. Die Differenz gibt positiv oder negativ die Differenz - logisch gell
Zergling-new ist offline  
Alt 10.05.2006, 21:38  
da schreibt der ElePHPant
 
Benutzerbild von Flor1an
 
Registriert seit: 18.06.2008
Beiträge: 8.903
PHP-Kenntnisse:
Fortgeschritten
Flor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer AnblickFlor1an ist ein wunderbarer Anblick
Standard

Wargh sorry was ich eben gepostet habe is der totale Quatsch. Hab etwas falsch gedacht
Flor1an ist offline  
Alt 11.05.2006, 09:00  
Erfahrener Benutzer
 
Registriert seit: 13.11.2005
Beiträge: 2.583
xabbuh
Standard

Wenn du das Datum sowieso in einer MySQL-Datenbank speicherst, solltest du mal darüber nachdenken, ob du das Datum nicht lieber im DATETIME-Format speicherst und die Differenz zwischen den beiden Daten mit DATEDIFF() berechnest.
xabbuh ist offline  
 


Themen-Optionen
Thema bewerten
Thema bewerten:

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 an
Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
PHP: Anzahl der Tage bis Tag X (Countdown) DER_Brain Tutorials 14 04.02.2008 22:11
vergangene Anzahl Tage ermitteln... PHP Tipps 2006 3 30.04.2006 18:17
Anzahl der Tage Chrescht PHP Tipps 2006 2 04.04.2006 08:43
Anzahl Tage eines vergangenen Monats josch1305 PHP Tipps 2006 3 23.03.2006 13:45
Anzahl Tage zw. 2 Datumsangaben heohni PHP Tipps 2006 5 23.02.2006 10:02
UNIX Timestamps PHP Tipps 2005 2 04.01.2005 20:34
sekunden zwischen 2 timestamps ausrechnen Ohrwurm83 PHP Tipps 2004 9 02.07.2004 16:49

Besucher kamen über folgende Suchanfragen bei Google auf diese Seite
http://www.php.de/php-tipps-2006/39840-erledigt-anzahl-tage-zwischen-2-unix-timestamps.html, php anzahl tage zwischen daten, php timestamp anzahl tage, php anzahl tage zwischen 2 timestamps, php tage zwischen zwei timestamps, php anzahl tage zwischen zwei timestamps, php tage zwischen 2 timestamps, tage zwischen zwei timestamps, php tage zwischen timestamp, tage zwischen timestamp, unix timestamp tage, php anzahl tage, zeit zwischen zwei timestamps, anzahl tage zwischen timestamps, php anzahl der tage zwischen zwei daten, anzahl jahre zwischen 2 timestamps php, tage zwischen zwei unix timestamps, tage zwischen zwei timestamps php, alle tage zwischen zwei timestamps ausgeben, tage zwischen 2 timestamps php

Alle Zeitangaben in WEZ +2. Es ist jetzt 15:00 Uhr.




Powered by vBulletin® Version 3.7.2 (Deutsch)
Copyright ©2000 - 2012, Jelsoft Enterprises Ltd.
Search Engine Optimization by vBSEO 3.2.0
Aprilia-Forum, Aquaristik-Forum, Liebeskummer-Forum, Zierfisch-Forum, Geizkragen-Forum

Creative Commons License
Dieser Inhalt ist unter einer Creative Commons-Lizenz lizenziert.