Impressum · Kontakt · Hilfe
Besucher online · Mitglieder



Portal > Foren > PHP > PHP-Programmierung > timestamp umschreiben
Antwort
 
Themen-Optionen
Alt 02.04.2008, 19:52   Nach oben    #1
richy
Benutzer
 
Registriert seit: 26.03.2008
Ort: paderborn
Beiträge: 43
Standard timestamp umschreiben

hallo!

ich habe hier folgendes:

PHP-Code:
 $sql "SELECT
  s.player1score,
  s.player2score,
  s.date date,
  t1.id player1_id,
  t1.name player1_name,
  t1.elo player1_elo,
  t2.id player2_id,
  t2.name player2_name,
  t2.elo player2_elo
  FROM
  players t1
  INNER JOIN spiele s ON s.player1id=t1.id
    INNER JOIN players t2 ON t2.id=s.player2id;"
;

    
    
$result mysql_query($sql) OR die(mysql_error());
    if( 
mysql_num_rows($result) > 0) {
        
        
// For each result that we got from the Database
        
while ($line mysql_fetch_assoc($result))
        {
         
$spielvalues[] = $line;
         }
    } 
das problem ist jetzt das feld "date". darin steht ein unix timestamp und damit auch in dem array. da ich das array am liebsten komplett per smarty->assign an smarty uebergeben wuerde, wuerde ich gerne die timestamps in diesem array per date("d.m.Y H:i",$date) in was lesbares umwandeln. ich weiss nicht wie ich in jeder zeile der while schleife an das date drankomme. mein bester schuss war $spielvalues['0']['date'], da kriege ich aber nur das date vom ersten array.

dann hab ichs mal so probiert:

PHP-Code:
// For each result that we got from the Database
        
while ($line mysql_fetch_assoc($result))
        {
$spielvalues[] = $line;
        
$i 0;
        echo 
$spielvalues[$i]['date'];
        
$i $i 1;

da kriege ich aber immer denselben wert (den ersten)...

ich hoffe das problem ist erklaert und jemand hat rat.
__________________
gruss,
richy
richy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.04.2008, 19:58   Nach oben    #2
Corvin
Erfahrener Benutzer
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 439
Standard

PHP-Code:
        while ($line mysql_fetch_assoc($result))
        {
         
$line['date'] = date("d.m.Y H:i"$line['date']);
         
$spielvalues[] = $line;
         } 
Oder:
http://www.smarty.net/manual/en/lang...ate.format.php
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.04.2008, 21:23   Nach oben    #3
Jann Hendrik
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.241
Standard

was spricht dagegen das gleich vom SQL-Server in das gewünschte Format zu ändern, sprich formatiert auszugeben?
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.04.2008, 21:49   Nach oben    #4
richy
Benutzer
 
Registriert seit: 26.03.2008
Ort: paderborn
Beiträge: 43
Standard

Zitat:
Zitat von Corvin Beitrag anzeigen
PHP-Code:
        while ($line mysql_fetch_assoc($result))
        {
         
$line['date'] = date("d.m.Y H:i"$line['date']);
         
$spielvalues[] = $line;
         } 
Oder:
http://www.smarty.net/manual/en/lang...ate.format.php
tja, einfach logisch tnx!

Zitat:
was spricht dagegen das gleich vom SQL-Server in das gewünschte Format zu ändern, sprich formatiert auszugeben?
eigentlich nichts. bekenne mich schuldig. bin halt als erstes ueber die unix timestamp gestolpert...
__________________
gruss,
richy
richy ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 02.04.2008, 21:52   Nach oben    #5
Corvin
Erfahrener Benutzer
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 439
Standard

Zitat:
Zitat von Jann Hendrik Beitrag anzeigen
was spricht dagegen das gleich vom SQL-Server in das gewünschte Format zu ändern, sprich formatiert auszugeben?
Dazu müsste ich nochmal ins Handbuch schaun.
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.04.2008, 08:57   Nach oben    #6
Jann Hendrik
Projektleiter
 
Benutzerbild von Jann Hendrik
 
Registriert seit: 02.12.2004
Ort: Wildeshausen
Beiträge: 2.241
Standard

dann sei hier nochmal die Seite erwähnt:
http://dev.mysql.com/doc/refman/5.1/...functions.html

Ist meine Lieblings-Seite auf dev.mysql.com

gibt es natürlich auch im Original:
http://dev.mysql.com/doc/refman/5.1/...functions.html
__________________

Umfragen:
bitte beachten: Vorschläge für künftige Umfragen
Woher weißt du vom developers-guide?

Wenn du dich in ein interessantes Thema eingearbeitet hast, dann lass andere daran teilhaben! Schreibe ein Tutorial und beschreibe, wie es geht, was nicht klappt, wo man aufpassen muss usw.
Danke!
Jann Hendrik ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.04.2008, 10:58   Nach oben    #7
Corvin
Erfahrener Benutzer
 
Benutzerbild von Corvin
 
Registriert seit: 19.03.2005
Ort: S-H | Flensburg
Beiträge: 439
Standard

Anstatt eine Lösung von hier habe ich bisher, aus Faulheit, immer eine PHP-Lösung verwendet. Ist es aber nicht so, dass man allgemein sagen kann, dass die MySQL-Funktionen schneller sind, als die entsprechenden PHP-Funktionen und es sich so für mich lohnen würde, meine Skripte anzupassen?
__________________
Corvin ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.04.2008, 12:07   Nach oben    #8
b0mbe
Neuer Benutzer
 
Registriert seit: 03.04.2008
Ort: Paderborn
Beiträge: 7
Standard

Ich finds persönlich am schönsten, direkt als UNIX-Timestamp in die DB (hier: MySQL) zu speichern. Über SELECT UNIX_TIMESTAMP(spalte) kann ich dann wunderbar Funktionen wie date o.ä. direkt verwenden.

Zitat:
Zitat von http://dev.mysql.com/doc/refman/4.1/en/storage-requirements.html
Code:
Storage Requirements for Date and Time Types

Data Type > Storage Required
DATE > 3 bytes
TIME > 3 bytes
DATETIME > 8 bytes
TIMESTAMP > 4 bytes
YEAR > 1 byte

The storage requirements shown in the table arise from the way that MySQL
represents temporal values:

    *DATE: A three-byte integer packed as DD + MM×32 + YYYY×16×32
    *TIME: A three-byte integer packed as DD×24×3600 + HH×3600 + MM×60 + SS
    *DATETIME: Eight bytes:
          o A four-byte integer packed as YYYY×10000 + MM×100 + DD
          o A four-byte integer packed as HH×10000 + MM×100 + SS
    *TIMESTAMP: A four-byte integer representing seconds UTC since the
                epoch ('1970-01-01 00:00:00' UTC)
    *YEAR: A one-byte integer
Wenn du 'ne Menge an Einträgen in deiner DB hast, braucht Timestamp zum einen weniger Speicher als Datetime und zum anderen sind grösser und kleiner auf int-Spalten wesentlich schneller als auf string-Spalten, da diese intern zuerst in Zahlen konvertierten werden müssen.

Der (für mich) einzige Nachteil: UNIX-Timestamps sind nicht wirklich lesbar, wenn man mal direkt in die DB schaut.
b0mbe ist offline  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Alt 03.04.2008, 12:09   Nach oben    #9
Basti
Erfahrener Benutzer
 
Registriert seit: 04.01.2006
Ort: Kassel
Beiträge: 752
Standard

Zitat:
Zitat von Corvin Beitrag anzeigen
Anstatt eine Lösung von hier habe ich bisher, aus Faulheit, immer eine PHP-Lösung verwendet.

Ist ja mitunter auch Sinnvoll, denn der Zeitstempel gibt ja eine „absolute“ Zeit an und ausgeben willst du mitunter die Ortszeit einer bestimmten Zeitzone mit oder ohne DST-Verschiebung.

Macht wenig Sinn, diese Verschiebungen dann in einen formatierten String einzurechnen.

Zitat:
Zitat von b0mbe Beitrag anzeigen
IUNIX-Timestamps sind nicht wirklich lesbar
„Nicht wirklich“ ist gut!
Willkommen.



Basti

Geändert von Basti (03.04.2008 um 12:11 Uhr).
Basti ist gerade online  
Add Post to del.icio.usBookmark Post in TechnoratiDiesen Beitrag zu Mister Wong hinzufügen!
Mit Zitat antworten
Antwort

Lesezeichen


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre 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 Aus

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
ActionListener umschreiben Z33di Eclipse 11 29.02.2008 19:40
Unterschied zwischen Format der MySQL-Typen DATETIME und TIMESTAMP Ben Datenbanken 9 20.08.2007 09:32
query umschreiben nibblas Datenbanken 5 04.07.2007 16:41
$_FILES brauchbar umschreiben Basti PHP-Programmierung 16 17.12.2006 21:23
Timestamp aus MySQL in Java weiterverarbeiten Uzimaster Datenbanken 2 27.11.2005 22:28


Alle Zeitangaben in WEZ +2. Es ist jetzt 17:39 Uhr.

Nach oben
Wir nutzen das Zend Framework, vBulletin (vBulletin v3.7.2, Copyright ©2000-2008, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.0.0) und vBSEO.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44