Mit timestamp nach Monaten sortieren/anzeigen?

Kalma

Erfahrenes Mitglied
Hey,

ihr kennt ja bestimmt Newsarchive, wie zum Beispiel auf nigthwish.com.

Da stehen rechts die Monate und das Jahr
2007
Januar
Februar
..
..
..
Dezember

2006
Januar
Februar
..
..
..
Dezember

und so weiter.



Ich speichere das Datum meiner News immer mit
PHP:
time()
und weiß bis jetzt nicht, wie und ob das mit diesem Format möglich ist, so ein Archiv zu erstellen.

weiß einer weiter?



MfG
David
 
Hey,

ja, date kenne ich, aber mit time() hat man doch viel mehr möglichkeiten das Datum nachher einfach(!!) zu formatieren
 
Hallo Kalma,

die Frage ist doch nicht wie man das Menu erstellt sondern wie man die Beitrage nach bestimmten Monaten filtern kann.. mySQL bietet dafür eine Reihe von Funktionen an die dir dabei behilflich sein können dein Projekt umzusetzen..

http://dev.mysql.com/doc/refman/5.0/en/date-and-time-functions.html

Beispielsweise könntest du:

SQL:
SELECT * FROM 'tabelle' WHERE FROM_UNIXTIME(deinZeitstempeldesEintrags,'%c') = gesuchterMonat AND FROM_UNIXTIME(deinTeitstempeldesEintrags,'%Y') = gesuchtesJahr;

benutzen. Der gesuchte Monat wäre hierbei mit 1-12 anzugeben und das Jahr als 4-stelliger String (z.B. '2007').

mfG

schnoOpsen
 
Zuletzt bearbeitet von einem Moderator:
@ 5noopy:

Muss das so aussehen? Ich kriegs nich hin :D

PHP:
	$query	=	'SELECT
					* 
				FROM 
					newsarchiv
				WHERE
					FROM_UNIXTIME(`news_datum`, '%c') = "'.date('m').'"';
	$result	=	mysql_query($query);

mfG
David
 
so wie du dein Query aufgebaut hast, müssten jetzt alle News des aktuellen Monats ausgegeben werden.. plus News die im gleichen Monat der Jahre zuvor gespeichert wurden.

Ich bin mir bei der Syntax des FROM_UNIXTIME-Befehls nicht ganz sicher.. hab ihn selbst noch nicht benutzt aber es solltte so laufen..

PHP:
$query    =    'SELECT
                    * 
                FROM 
                    newsarchiv
                WHERE
                    DATE_FORMAT(`news_datum`, '%c') = 7';

Kannst auch mal den oben verwendeten Code versuchen.. da ich mir nicht sicher bin in welcher Formatierung du deinen Timestamp gespeichert hast..

mfG
 
Zuletzt bearbeitet:
Zurück