Avatar billede mccookie Seniormester
30. marts 2005 - 21:28 Der er 19 kommentarer og
1 løsning

timestamp fra mysql til php tid

Hejsa

Hvordan ændre jeg et timestamp til datoformat dd-mm/yy via php??
Avatar billede bromer Nybegynder
30. marts 2005 - 21:31 #1
Hvis du har et unix timestamp i php kan du gøre følgende

<?
$wanted_format = date('d/m/Y',$timestamp);
?>

Hvis du har et timestamp af en art i MySQL kan du bruge MySQL funktionen UNIX_TIMESTAMP for at få et unix-timestamp du kan arbejde med i PHP. Hvis jeg ikke har ramt rigtigt på du gerne specificere hvad du mener yderligere.
Avatar billede mccookie Seniormester
30. marts 2005 - 21:33 #2
Det er en mysql timestamp ;)

HVad skal jeg gøre?
Avatar billede bromer Nybegynder
30. marts 2005 - 21:37 #3
Hvis du har et felt i databasen kaldet "dato" der er gemt som et MySQL timestamp kan du hente det med:

$t = mysql_result(mysql_query("SELECT UNIX_TIMESTAMP(dato) as timestamp FROM <dintabel>"),0);
$wanted_format = date('d/m/Y',$t);

Er det det du vil?
Avatar billede mccookie Seniormester
30. marts 2005 - 21:38 #4
Ideen er jo at jeg helst vil hente min forespørgelse med * istedet for at fortælle alt hvad jeg vil hente af hensyn til overskueligheden :)

Kan det lade sig gøre??
Avatar billede bromer Nybegynder
30. marts 2005 - 21:44 #5
Øh.. jada.. noget lignende dette:

$res = mysql_query("SELECT * FROM <dintabel>");
while($row = mysql_fetch_row($res)) {
  // Alt data (blandt andet et felt der hedder dato) ligger nu i $row arrayet
  $wanted_format = date("d-m/Y",$row['dato']);
}

så har du hentet alt data ud fra alle rækker. Giver det mere mening nu?
Avatar billede mccookie Seniormester
30. marts 2005 - 21:50 #6
Jeg bruger extract istedet fetch_row metoden......

Derfor bruger jeg dette hvor $tid er min timestamp

echo date("d-m/Y",$tid);

$tid=20050330211008

Hvilket give 19/1-2038 hvilket er lidt øvsa......
Avatar billede bromer Nybegynder
30. marts 2005 - 21:55 #7
Du skal passe lidt på med at bruge extract(). Det er en virkelig god måde at skrive uoverskuelig kode på. Hvad får du hvis du skriver:

echo date("d-m/Y",strtotime($tid));
Avatar billede mccookie Seniormester
30. marts 2005 - 21:56 #8
1/1-1970
Avatar billede bromer Nybegynder
30. marts 2005 - 21:59 #9
og hvad indeholder $tid
Avatar billede mccookie Seniormester
30. marts 2005 - 22:00 #10
$tid=20050330211008
Avatar billede bromer Nybegynder
30. marts 2005 - 22:04 #11
okay. så tager vi den mysql vejen så

SELECT *,UNIX_TIMESTAMP(tid) as mintid FROM <dintabel>

og i php bliver det så

echo date("d-m/Y",$mintid);
Avatar billede erikjacobsen Ekspert
30. marts 2005 - 22:09 #12
Hvad med bare at

$tid=20050330211008;
preg_match('/^..(..)(..)(..)/',$tid,$r);
print "$r[3]-$r[2]/$r[1]";
Avatar billede mccookie Seniormester
30. marts 2005 - 22:17 #13
echo date("d-m/Y",$mytime);

SELECT * , UNIX_TIMESTAMP( 'time' ) AS mytime
        FROM news, person
        WHERE news.aktiv = '1' AND person.person_id = news.person_id
        ORDER BY news.time DESC
        LIMIT 0 , 3

Den viser stadig 1/1-1970 ;(
Avatar billede bromer Nybegynder
30. marts 2005 - 22:20 #14
Det gør den ikke, men det kan være fordi der er quotes omkring. Men brug dog den løsning erikjacobsen postede tidligere
Avatar billede mccookie Seniormester
30. marts 2005 - 22:28 #15
Erikjacobesen>>

Virker perfekt.....
Avatar billede erikjacobsen Ekspert
30. marts 2005 - 22:30 #16
En anden mulighed er at gemme et unix timestamp i din tabel - der er fordele og ulemper ved begge metoder.

Jeg samler ikke på point, tak.
Avatar billede mccookie Seniormester
30. marts 2005 - 22:32 #17
I know.... ;)

Men jeg vil istedet tildele dem til bromer for hans indsats ;)

Tak for hjælpen anyway......

Hvad vil du anbefale??
Jeg skal blot bruge det i et news system ;)
Avatar billede erikjacobsen Ekspert
30. marts 2005 - 22:34 #18
Tjah, du skal nok bare gøre som du gør nu ...
Avatar billede bromer Nybegynder
30. marts 2005 - 22:35 #19
mccookie: Bare læg et svar selv og tag dine points igen.
Avatar billede mccookie Seniormester
30. marts 2005 - 22:53 #20
Oki....

Tak for hjælpen begge 2 ;)
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester