Toon posts:

PHP: timestamp omzetten in een leesbare datum en dan in array tonen

Pagina: 1
Acties:
  • 142 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Dat eerste lukt wel. Alleen daarna wil ik de juiste datum bij de juiste post laten zien. Hij laat nu alleen de datum van de laatstse post bij alle records zien. Logisch, want het staat niet in een array.

Probleem is dus dat ik geen idee heb, hoe ik de variabele $showTime in een array kan zetten, die ik vervolgens in een printf aanroep.

Kan iemand me hierbij helpen. Onderstaand het stukje code.

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
$teller = 0;
$sql = "SELECT *
        FROM $tableName
        ORDER BY 'id' DESC";
$result = mysql_query($sql);
$row = mysql_fetch_array($result);

$postTime = ($row["time"] . "\n");
ereg("([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})", $postTime, $regs);
$showTime = date("j M Y H:i", mktime($regs[4], $regs[5], $regs[6], $regs[2],$regs[3], $regs[1]));

if ($row) {
        print "<table border=\"0\" width=\"500\">\n";
    do {
        $teller++;
        printf ("<tr>\n\t<td><b>$teller</b></td>\n\t<td valign=\"top\">Name:</td>\n\t<td><a href='mailto:%s'><b>%s:</b></a><a class=\"2\"> posted on %s</a></td>\n</tr>\n",$row["email"], $row["name"], $showTime);
        printf ("<tr>\n\t<td>&nbsp;</td>\n\t<td valign=\"top\">Message:</td>\n\t<td>%s</td>\n</tr>\n", $row["message"]);
        print "<tr>\n\t<td colspan=\"3\"><br><p align=\"center\">[img]\"images/main/line.gif\"[/img]</td>\n</tr>\n";
        print "<tr>\n\t<td colspan=\"3\">&nbsp;</td>\n</tr>\n";
    } 
    while ($row = mysql_fetch_array($result));
        print "</table>\n";
}

Verwijderd

Topicstarter
Bah, hier was ik al bang voor. Is er echt niemand die het weet.
In een array zetten gaat natuurlijk wel. Maar hoe roep ik die array nu op een juiste manier aan? :(

  • Onno
  • Registratie: Juni 1999
  • Niet online
Kun je niet beter proberen om je db de datum direct in de juiste opmaak te laten teruggeven? Ik weet niet of en hoe dat kan in MySQL, maar in Oracle kun je gewoon dingen zeggen als "SELECT to_char(datum,'DD MONTH YYYY HH24:MI'), ... from ..." zeggen. Lijkt me veel handiger. :)

  • LuCarD
  • Registratie: Januari 2000
  • Niet online

LuCarD

Certified BUFH

Wat Oracle kan kan mysql ook.... ermm.. nou ja.. bijna dan.. :)

select Date_Format(time,"%d %M %Y") where id = ....

Date_Format reference

Programmer - an organism that turns coffee into software.


Verwijderd

Topicstarter
Tnx. 'k Ga het proberen...

Verwijderd

Topicstarter
Hmmzzz...

Ik ben koppig. Ik ben nu bezig met een kleine site. Maar ja, die timestamp neemt gewoon minder ruimte in beslag, dan wanneer ik direct de datum als varchar in het juiste formaat zet.
Ik kan natuurlijk wel datatime gaan gebruiken.

Maar het moet toch gewoon kunnen. Een timestamp omzetten naar het juiste formaat en vervolgens als array aanroepen. Ik krijg nu telkens overal de datum van de laatste post. :( :(

Zijn er nog meer suggesties?

  • PanMan
  • Registratie: November 1999
  • Laatst online: 09:15

PanMan

Spun!

Ik snap niet helemaal wat je wil met een array, maar ik zet zelf gewoon een unix timestamp in een mySQL tabel, haal die eruit met PHP, en converteer het in PHP naar een datum.
als je in $tijd je timestamp hebt staan, kan je die met zoiets omzetten:
echo date("D M jS Y G:i:s", $tijd);

Uiteraard kan je dat ook in een array gooien oid, maar dat stuk van je post volg ik niet helemaal.
success,
PanMan.

Where a calculator on the ENIAC is equipped with 18,000 vacuum tubes and weighs 30 tons, computers in the future may have only 1,000 vacuum tubes and weigh only 1.5 tons.
– Popular Mechanics, March 1949


  • tweakerbee
  • Registratie: Maart 2000
  • Laatst online: 04-09 08:53

tweakerbee

dus..?

Leg de afzonderlijke stukjes eens uit?
date("D M jS Y G:i:s", $tijd);

D = dag
M = maand
jS = ???
Y = jaar
G = ???
i = minuten
s = seconden
$tijd = timestamp

Verder ken ik H als uren...(TOCH?)

You can't have everything. Where would you put it?


Verwijderd

Maar stel, ik heb dit:
code:
1
2
3
$tijd       =   20020110234427;
$datum      =   date("D M jS Y G:i:s", $tijd);
echo($datum);

Waarom werkt dit niet en krijg ik als $datum:
Fri Dec 13th 1901 21:05:20

??

  • Orphix
  • Registratie: Februari 2000
  • Niet online
Op maandag 14 januari 2002 23:31 schreef samba het volgende:
Maar stel, ik heb dit:
code:
1
2
3
$tijd       =   20020110234427;
$datum      =   date("D M jS Y G:i:s", $tijd);
echo($datum);

Waarom werkt dit niet en krijg ik als $datum:
Fri Dec 13th 1901 21:05:20

??
Quote uit andere thread van mezelf:
Orphix vertelt: Je moet tijd (meestal) vergelijken via hun 'unix timestamp', oftewel aantal seconden sinds 1970
Dit kan je in PHP ophalen met de functie time().
;)

Oftewel $tijd moet het aantal verstreken seconden zijn en niet een combinatie van jaar/maand/dag.

Als je uit zo'n combinatie een timestamp wil maken moet je even zoeken op de functie mktime().

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Topictitel is wel erug lang

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • TheDjasp
  • Registratie: Juni 2001
  • Laatst online: 26-06 08:16

TheDjasp

het wordt toch niks

Topic is ook al erg oud....

Omdat het KAN, HOEFT het nog niet!
I haven't been ignoring you; I've been prioritizing you. Hanglooz; "chromeless windows en fullscreen zuigen allebei als een 1600Watt Nilfisk"
logt nu ook


  • Orphix
  • Registratie: Februari 2000
  • Niet online
Op dinsdag 15 januari 2002 00:07 schreef TheDjasp het volgende:
Topic is ook al erg oud....
hehe :z

  • bille
  • Registratie: Mei 2000
  • Laatst online: 12-09 23:20

bille

Don't call me Buff

goed he de search functie :P

Ultra Pilammo 6666Mhz AMD, 4251Mbit/s RAM, Gefors V6666 MegaTurbo, 43" TFS, Ultra 80Gig Firewire netwerkkaart en 5D geluid met 66 speakers in 5 dimensies

Pagina: 1