Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 10 von 17

Thema: Tage zwischen zwei Daten ausgeben

  1. #1
    Samurai
    Registriert seit
    07.08.2005
    Beiträge
    231
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard Tage zwischen zwei Daten ausgeben

    Hallo zusammen!

    Ich möchte mit PHP die Tage zwischen einem Anmeldedatum und dem Heutigen ausgeben lassen. In der DB ist das Anmeldedatum, als TEXT, in dieser Form gespeichert (Bsp) 12.01.2006.

    fg_geburtstag ist das Anmeldedatum!

    Code:
    <?php
    $abfrage = "SELECT fg_geburtstag FROM freshagotschi WHERE login LIKE '$login'";
    $result = mysql_query&#40;$abfrage&#41;;
    $array = mysql_fetch_array&#40;$result&#41;;
    $fg_geburtstag = $array&#91;'fg_geburtstag'&#93;;
    
    $date_aktuell = time&#40;&#41;;
    $timestamp = mktime&#40;$fg_geburtstag&#41;;
    $differenz = $timestamp - $date_aktuell;
    $diff_tage = $differenz / 86400;
    echo floor&#40;$diff_tage&#41;;
    ?>
    Jedoch wird immer -1 ausgegeben. Wieso?

    Danke schonmal im vorraus!
    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 !!!!!


  2. #2
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    versuche es mal so:
    Code:
    $sql = "SELECT UNIX_TIMESTAMP&#40;`fg_geburtstag`&#41; FROM `freshagotschi` WHERE `login`='$login'";
    
    list&#40;$fg_geburtstag&#41; = mysql_fetch_row&#40;mysql_query&#40;$sql&#41;&#41;;
    
    echo floor&#40;&#40;$fg_geburtstag - time&#40;&#41;&#41;/ 86400&#41;;
    und gucke dir auf de.php.net mal den genauen syntax für mktime an.

  3. #3
    Samurai
    Themenstarter

    Registriert seit
    07.08.2005
    Beiträge
    231
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Habe mal deinen Quellcode ausprobiert, da kommt eine ganz große Zahl raus ^^ (13161)

    Hatte mir die Sachen über mktime durchgelesen. Das Problem ist, dass ich grad erst mit PHP angefangen habe und kompliziertere Sachen noch nicht verstehe. In dem Fall wie ich hier die Variable reinbekomme:

    [int Stunde [, int Minute [, int Sekunde [, int Monat [, int Tag [, int Jahr [, int is_dst]]]]]]]


  4. #4
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    also das in deiner datenabnk ist im SQL zeit format oder ???

    also YYYY-MM-DD

    und was enthält $fg_geburtstag nach dem auslesen ??

  5. #5
    Gast

    Standard

    Ne, in der Datenbank steht das so: 10.01.2006
    Und so wird auch $fg_geburtstag ausgegeben.

    So lese ich das bei der Anmeldung ein:
    <?php $timestamp = time(); ?><?php $fg_geburtstag = date("d.m.Y",$timestamp); ?>

  6. #6
    Forum Guru
    Registriert seit
    14.06.2004
    Ort
    Schleswig-Holstein
    Beiträge
    5.439
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Moin!

    Du Dussel

    Warum schreibst du denn nicht einfach den Timestamp von dem Geburtsag in die Datenbank anstatt einer Varible ?
    Zitat Zitat von Anonymous
    So lese ich das bei der Anmeldung ein:
    <?php $timestamp = time(); ?><?php $fg_geburtstag = date("d.m.Y",$timestamp); ?>
    Das hieße ja, daß der Tag der Geburt = Tag der Anmeldung ist.
    Mir ist zwar bekannt, daß die User immer jünger werden, aber direkt nach der Geburt wird wohl auch in 1000 Jahren noch niemand online gehen. Ich vermute mal, daß du das Geburtsdatum irgendwie anders abfragst und dann umwandelst, oder ?

    Gut, das war ja hier nicht die Fragestellung, sondern wie du das Datum zurück bekommst.
    So geht es:
    Zitat Zitat von Anonymous
    in der Datenbank steht das so: 10.01.2006
    Das Datum ist also ein Textstring. Diesen mußt du nun ganz einfach nach Tag + Monat + Jahr zerlegen.
    Da du einen Punkt als Trenner benutzt ist das ganz einfach:
    Code:
    <?php
    list&#40;$Tag,$Monat,$Jahr&#41; = split&#40;".",$fg_geburtstag&#41;;
    ?>
    Nun mußt da im nächsten Schritt das ganze in einen Tiemstamp umwandeln:

    Code:
    <?php
    $geb_time = mktime&#40;0,0,0,$Monat,$Tag,$Jahr&#41;;
    echo "$geb_time = ".date&#40;"d.m.y",$geb_time&#41;;
    ?>
    Voila ...

    G.a.d.M.

    Ronald

  7. #7
    Samurai
    Themenstarter

    Registriert seit
    07.08.2005
    Beiträge
    231
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Hehe.. das Geburtsdatum ist nicht das Geburtsdatum des Users ^^ Das ganze soll eine Art Tamagotschi werden. Und das Anmeldedatum ist das Geburtsdatum des Tieres

    Bei dem Umwandeln in den Timestamp gibt es leider ne Fehlermeldung.
    "Warning: mktime() expects parameter 4 to be long, string given in /home/d00055/websites/freshn.de/fg-main.php on line 25"


  8. #8
    Forum Guru
    Registriert seit
    14.06.2004
    Ort
    Schleswig-Holstein
    Beiträge
    5.439
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Zitat Zitat von Knüps
    Hehe.. das Geburtsdatum ist nicht das Geburtsdatum des Users ^^ Das ganze soll eine Art Tamagotschi werden. Und das Anmeldedatum ist das Geburtsdatum des Tieres
    Oh Gott ....

    Code:
    <?php
    $Jahr = substr&#40;$Jahr,-2&#41;;
    $geb_time = mktime&#40;0,0,0,$Monat,$Tag,$Jahr&#41;;
    echo "$geb_time = ".date&#40;"d.m.y",$geb_time&#41;;
    ?>
    So sollte es dann gehen.
    Ich kapiere einfach nicht, warum man die Jahreszahl nur zweistellig eingeben darf ....

    G.a.d.M.

    Ronald

  9. #9
    Samurai
    Themenstarter

    Registriert seit
    07.08.2005
    Beiträge
    231
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    Irgendwie bin ich langsam ein wenig verwirrt

    Ich habe nun folgenden Quellcode:
    Code:
    <?php
    $abfrage = "SELECT fg_geburtstag FROM freshagotschi WHERE login LIKE '$login'";
    $result = mysql_query&#40;$abfrage&#41;;
    $array = mysql_fetch_array&#40;$result&#41;;
    $fg_geburtstag = $array&#91;'fg_geburtstag'&#93;;
    ?>
    <?php
    list&#40;$Tag,$Monat,$Jahr&#41; = split&#40;".",$fg_geburtstag&#41;;
    ?>
    <?php
    $Jahr = substr&#40;$Jahr,-2&#41;;
    $geb_time = mktime&#40;0,0,0,$Monat,$Tag,$Jahr&#41;;
    echo "$geb_time = ".date&#40;"d.m.y",$geb_time&#41;;
    ?>
    <?php
    $date_aktuell = time&#40;&#41;;
    $timestamp = mktime&#40;$fg_geburtstag&#41;;
    $differenz = $timestamp - $date_aktuell;
    $diff_tage = $differenz / 86400;
    echo floor&#40;$diff_tage&#41;;
    ?>
    Und ausgegeben wird:
    "Warning: mktime() expects parameter 4 to be long, string given in /home/d00055/websites/freshn.de/fg-main.php on line 24
    = 01.01.70-1"

    Line 24 ist folgende:
    Code:
    $geb_time = mktime&#40;0,0,0,$Monat,$Tag,$Jahr&#41;;


  10. #10
    Forum Guru
    Registriert seit
    28.12.2004
    Ort
    Ringgenberg(bei Interlaken) / Schweiz
    Beiträge
    4.787
    Danke
    0
    Bekam 0 mal "Danke" in 0 Postings

    Standard

    OMG du stellst dich aber selten dämlich an. Lies dir nochmals genau durch was du da machst.


    Code:
    <?php
    $abfrage = "SELECT fg_geburtstag FROM freshagotschi WHERE login LIKE '$login'";
    $result = mysql_query&#40;$abfrage&#41;;
    $array = mysql_fetch_array&#40;$result&#41;;
    $fg_geburtstag = $array&#91;'fg_geburtstag'&#93;;
    
    list&#40;$Tag,$Monat,$Jahr&#41; = split&#40;".",$fg_geburtstag&#41;;
    
    
    $geb_time = mktime &#40; 0, 0, 0, $Monat, $Tag, $Jahr&#41;;
    
    echo floor&#40; &#40;&#40;time&#40;&#41;-$geb_time&#41; / 86400&#41; &#41;;
    ?>

Ähnliche Themen

  1. Leerraum zwischen zwei Bildern
    Von Neverdead im Forum HTML & CSS Forum
    Antworten: 14
    Letzter Beitrag: 01.02.2009, 20:01
  2. In einem <select> mehrere Daten formatiert ausgeben?
    Von isset() im Forum HTML & CSS Forum
    Antworten: 0
    Letzter Beitrag: 03.04.2007, 14:42
  3. Firefox macht Abstand zwischen zwei Ebenene
    Von Emcee im Forum HTML & CSS Forum
    Antworten: 3
    Letzter Beitrag: 05.10.2005, 17:50
  4. Absatz zwischen zwei Bildern
    Von Corraggiouno im Forum HTML & CSS Forum
    Antworten: 5
    Letzter Beitrag: 11.04.2005, 12:56
  5. HTML:Vertikaler Abstand zwischen zwei Bildern haut nicht hin
    Von CometBrause im Forum HTML & CSS Forum
    Antworten: 0
    Letzter Beitrag: 09.02.2005, 01:44

Stichworte

Berechtigungen

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