Anzeige

Problem mit date ausgabe

Problem mit date ausgabe | PSD-Tutorials.de

Erstellt von enyougyoku, 13.08.2008.

  1. enyougyoku

    enyougyoku *nyaa*

    Dabei seit:
    20.10.2007
    Beiträge:
    72
    Geschlecht:
    männlich
    Ort:
    Germany / Stendal
    Problem mit date ausgabe
    moin, hab mal wieder ein Problem...^^

    das Problem:

    bei einem datensatz habe ich zB

    2008-07-18 23:37:12


    was die ausgabe

    July 18th, 2008 at 23:37 ergibt

    nun "meine neue news" hat

    2008-08-13 23:04:34

    und das ergibt


    Unknown Month 13th, 2008 at 23:21

    ich weiß ehrlich gesagt nicht woran das liegen könnte, höhere Monate als July gehen nicht, dafür aber "ältere"

    sprich:

    01 (January) geht
    09 (September) geht nicht

    Auszug (und ja, ich werde die If Abfragen noch in funktionen packen)

    PHP:
    1. while ($row=mysql_fetch_array($sql, MYSQL_ASSOC))
    2. {
    3.     $exdatum=explode("-", $row[startdatum]);
    4.     $exzeit=explode(":", $row[startzeit]);
    5.     $zeitausgabe=$exzeit[0].":".$exzeit[1];    
    6.     $jahr = $exdatum[0];
    7.     $monat = $exdatum[1];
    8.     $tag = $exdatum[2];    
    9.     if(isset($tag))
    10.     {
    11.         if($tag == 01)
    12.         {$endung = "1st";}
    13.         if($tag == 02)
    14.         {$endung = "2nd";}
    15.         if($tag == 03)
    16.         {$endung = "3rd";}    
    17.         if($tag > 04)
    18.         {$endung = "th";}
    19.     };//end if
    20.     if(isset($monat))
    21.     {
    22.         if($monat == 01)
    23.         {$monat = "January";}        
    24.         elseif($monat == 02)
    25.         {$monat = "February";}    
    26.         elseif($monat == 03)
    27.         {$monat = "March";}            
    28.         elseif($monat == 04)
    29.         {$monat = "April";}    
    30.         elseif($monat == 05)
    31.         {$monat = "May";}        
    32.         elseif($monat == 06)
    33.         {$monat = "June";}    
    34.         elseif($monat == 07)
    35.         {$monat = "July";}
    36.         elseif($monat == 08)
    37.         {$monat = "August";}    
    38.         elseif($monat == 09)
    39.         {$monat = "September";}        
    40.         elseif($monat == 10)
    41.         {$monat = "October";}        
    42.         elseif($monat == 11)
    43.         {$monat = "November";}        
    44.         elseif($monat == 12)
    45.         {$monat = "December";}    
    46.         else{$monat = "Unknown Month";}
    47.     };//end if
    48.     $datumausgabe = $monat." ".$tag.$endung.", ".$jahr;
    49.     $formatiert = exBBCode( $row[nachricht] );
    50.     $countid = $row[id];
    51.     $sqlcountanz = mysql_query("SELECT * FROM comments_news WHERE id = '$countid ' ");
    52.     $countanz = mysql_num_rows($sqlcountanz);
    53.     echo'<div class="news"><strong>'.$row[titel].'</strong></div>
    54.         <div class="newscon" style="margin-bottom:17px;"><div class="newsX"> Published by <a href="index.php?seite=team#'.$row[autor].'">'.$row[autor].'</a>&nbsp;'.$datumausgabe.' at '.$zeitausgabe.'</div>
    55.         <div class="newsXX">'.$formatiert.'</div>        
    56.         <div style="margin-top:5px; border-top:1px solid #666666;">
    57.         <table width="585" border="0"><tr>
    58.         <td width="435">news category: <a href="index.php?seite=news&newscategory='.$row[newscategory].'">'.$row[newscategory].'</a></td>
    59.         <td width="150"> <div align="right"><a href="index.php?seite=news&newsid='.$row[id].'">'.$countanz.' Comments</a></div></td></tr></table></div></div>
    60.        ';    
    61. }//while ende
     
    #1      
  2. BeeChiton

    BeeChiton Noch nicht viel geschrieben

    Dabei seit:
    27.01.2007
    Beiträge:
    5
    Geschlecht:
    männlich
    Ort:
    Celle
    Kameratyp:
    D70
    Problem mit date ausgabe
    AW: Problem mit date ausgabe

    Hallo enyougyoku!

    Das hat soweit mir bekannt was mit dem Oktalsystem zu tun.

    Hintergrund:
    Für PHP sind alle Werte mit führender Null Oktalwerte (Oktalzahlen).

    Problem:
    08 und 09 sind KEINE echten/möglichen Oktalwerte - PHP interpretiert hierfür ohne Fehlermeldung einfach eine 0.

    Beweis:
    In Deinem Programm solllten die Monate Oktober (10) bis Dezember (12) wieder funktionieren.

    Lösung wenn Beweis zieht:
    Setze alle zu vergleichenden Werte in "Quotes" also Anführungszeichen

    Beispiel mit Deinem Code:
    if(isset($monat))
    {
    if($monat == "01")
    {$monat = "January";}
    elseif($monat == "02")
    {$monat = "February";}
    elseif($monat == "03")
    {$monat = "March";}
    elseif($monat == "04")
    {$monat = "April";}
    elseif($monat == "05")
    {$monat = "May";}
    elseif($monat == "06")
    {$monat = "June";}
    elseif($monat == "07")
    {$monat = "July";}
    elseif($monat == "08")
    {$monat = "August";}
    elseif($monat == "09")
    {$monat = "September";}
    elseif($monat == "10")
    {$monat = "October";}
    elseif($monat == "11")
    {$monat = "November";}
    elseif($monat == "12")
    {$monat = "December";}
    else{$monat = "Unknown Month";}
    };//end if

    Ich kann nur hoffen, dass es hilft, da ich es hier grad nicht testen kann.

    Gruss
    BeeChiton
     
    Zuletzt bearbeitet: 14.08.2008
    #2      
  3. enyougyoku

    enyougyoku *nyaa*

    Dabei seit:
    20.10.2007
    Beiträge:
    72
    Geschlecht:
    männlich
    Ort:
    Germany / Stendal
    Problem mit date ausgabe
    Quotes.. darauf hätte ich auch kommen können, funktioniert nun -danke

    Edit. da ich eben aufm schlauch stehe, wie könnte man das am besten als funktion einbiden sodas man die zahlen "tag" oder "monat" nur als paramter angeben muss um der varibalen den wert zu zuweisen?

    also

    $monat = monatfunktion(01)
    $tag = tagfunktion(24)
     
    Zuletzt bearbeitet: 14.08.2008
    #3      
  4. CIX88

    CIX88 Aktives Mitglied

    Dabei seit:
    06.04.2006
    Beiträge:
    814
    Geschlecht:
    männlich
    Ort:
    GR
    Problem mit date ausgabe
    AW: Problem mit date ausgabe

    Ich würde die Monate in ein Array packen ...

    $momat_array = Array('', 'Januar', 'Februar' .....);
    $monat = $monat_array[01]; oder
    $monat = $monat_array[1];

    Wo ist das Problem ?
     
    #4      
  5. Duddle

    Duddle Posting-Frequenz: 14µHz

    Dabei seit:
    03.02.2006
    Beiträge:
    3.864
    Geschlecht:
    männlich
    Ort:
    Dresden
    Problem mit date ausgabe
    AW: Problem mit date ausgabe

    Machst du das als Übung, oder warum nutzt du die fertigen PHP-Datumsfunktionen nicht?

    PHP:
    1.  
    2. <?php
    3. $zeit = "2008-08-13 23:04:34";
    4. $timestamp = strtotime($zeit);
    5.  
    6. echo date("F dS, Y",$timestamp)." at ".date("H:i",$timestamp);
    7. ?>
    8.  

    Duddle
     
    #5      
  6. enyougyoku

    enyougyoku *nyaa*

    Dabei seit:
    20.10.2007
    Beiträge:
    72
    Geschlecht:
    männlich
    Ort:
    Germany / Stendal
    Problem mit date ausgabe
    AW: Problem mit date ausgabe

    teils eine übung und teils einfach für mich besser zu verstehen bzw. anzuwenden :D
     
    #6      
  7. splasch

    splasch Nicht mehr ganz neu hier

    Dabei seit:
    12.02.2006
    Beiträge:
    176
    Problem mit date ausgabe
    AW: Problem mit date ausgabe

    Hi
    Warum immer so umständlich?

    Du kanst dir das gewünschte Datum Format direkt aus der Datenbank schon ausgeben lassen.

    Dazu benutze die Sql funktionen

    TO_DATE(`datum_spalte`, 'dd-mm-yyyy') as Datum

    Mfg Splasch
     
    #7      
  8. purzel

    purzel Guest

    Problem mit date ausgabe
    AW: Problem mit date ausgabe

    Einfacher ist es als Unix-Timestamp zu speichern in der Datenbank und das nach Herzenswunsch und belieben ausgeben lassen wie man es möchte. Timestamp sind Sekunden gerechnet ab 1.1.1970 00:00 Uhr.

    Beispiel: Timestamp 1218881706

    PHP:
    1. $_time = "1218881706";
    2. echo date('d.m.Y, H:i', $_time)." Uhr";
    Ausgabe: 16.08.2008, 12:15 Uhr


    Du kannst dabei beliebig das ausgeben was du möchtest.

    Möchtest du dabei ein timestamp erstellen ist dies auch kein Problem:

    PHP:
    1. $_now = time();
    $_now = Aktuelle Zeit als Timestamp

    Du möchtest ein bestimmtes Datum generieren, z.B. das vom 1.01.2008 01:23 Uhr:

    PHP:
    1. $_damals = mktime(1, 23, 0, 1, 1, 2000);
    2. echo date('d.m.Y, H:i', $_damals)." Uhr";
    Ausgabe: 1.01.2008, 01:23 Uhr

    Alles nähere darüber Datum/Uhrzeit Funktionen

    Warum kompliziert machen wenn es einfacher geht
     
    #8      
x
×
×
teststefan