tidsuppgift i PHP

Tråden skapades och har fått 6 svar. Det senaste inlägget skrevs .
1

jag har fält med 'timestamp'-format på datum-och-tid. Hur kodar jag i php för att det ska stå i klartext? (Typ att inlägget skrevs den 13/4 19:12)

  • Medlem
  • Stockholm
  • 2003-05-25 00:23

Kanske så här?

<?php echo date("j/n H:i"); ?>

njaeä...
då får jag ju tidsuppgift för när sidan laddades senast. Vad jag vill behandla är den data i timestamp-fältet som genereras per automatik när posten skapas.
det ser tex ut så här:
20030513201923

Jag funderar om det finns något smidigare sätt än att (som jag ännu inte prövat) medelst stränghantering plocka ut delar av strängen och portionera ut dom i olika echo-satser
år-2003 mån-05 dag-13 h-20 m-19 sec-23

eller är det så man gör?

  • Medlem
  • Stockholm
  • 2003-05-25 10:55

Jag vet faktiskt inte. Har ingen direkt erfarenhet av det du försöker göra.
Om ingen kan hjälpa dig här finner du säkert svaret på www.webforum.nu

Lycka till!

  • Medlem
  • Stockholm
  • 2003-05-25 11:08

Jag delar upp strängen i små bitar med hjälp utav substr(string, start, längd);

$datum = $rad['tidstampel'];
$year = substr($datum,2,2);
$mon  = substr($datum,4,2);
$day  = substr($datum,6,2);
$hour = substr($datum,8,2);
$min  = substr($datum,10,2);
$sec  = substr($datum,12,2);

Jag tror det finns en funktion som du ger tidstampeln som argument samt vad du vill få tillbaks från funktionen. Typ

getDate($rad['tidstampel'], year); //2003

men det har jag aldrig provat (obs, åvanstående kodrad är påhittad).

ja men då får det väl bli nåt i den stilen... jag återkommer när jag fått ordning påt!

tack så länge.

Citat:

Skrevs ursprungligen av David Slättne
jag har fält med 'timestamp'-format på datum-och-tid. Hur kodar jag i php för att det ska stå i klartext? (Typ att inlägget skrevs den 13/4 19:12)

Om det är en vanlig unix-tidsstämpel är det ganska enkelt att ordna. Om vi har en variabel "$timestamp" är date()-funktionen allt du behöver använda dig av:

<?php
   echo date('j/n H:i', $timestamp);
?>

Om vi kör med databasvarianten (brukar oftast vara något i stil med "yyyy-mm-dd hh:mm:ss" följt av millisekunder och tidszon) är funktionen strtotime() bra att ha. Den brukar klara de flesta tidsformat riktigt bra.

<?php
   $timestamp = strtotime($dbTimestamp);
   echo date('j/n H:i', $timestamp);
?>

Men min favoritlösning är att låta databasen sköta den konverteringen själv, d.v.s. så att den spottar ur sig rätt format med en gång. Det kan antingen vara en unix-tidsstämpel (för vidare bearbetning i php) eller ett format som passar bättre för att skickas ut i obehandlad form (t.ex. "13/4 19:12"). Av de två blir den sistnämnda lite mindre beräkningsintensiv. Genom att göra så får man en lösning som alltid fungerar, och det utan att man behöver grisa ner koden med alltför många workarounds.

1
Bevaka tråden