Du må være registrert og logget inn for å kunne legge ut innlegg på freak.no
X
LOGG INN
... eller du kan registrere deg nå
Dette nettstedet er avhengig av annonseinntekter for å holde driften og videre utvikling igang. Vi liker ikke reklame heller, men alternativene er ikke mange. Vær snill å vurder å slå av annonseblokkering, eller å abonnere på en reklamefri utgave av nettstedet.
  10 1060
Holder på med en nettside for en ungdomsbedrift jeg er med i.
På alle nyheter osv. som blir skrevet lagres datoen i timestamp format.
Men jeg vil ikke at det skal vises 2008-09-27 01:48:26. Heller 27/9/2008 01:48

Eller aller helst å kunne legge til tekst mellom datoene. F.eks
Den 27 i 9, 2008 klokken 01:48

Har prøvd å søke, men har ikke funnet noe som kunne hjelpe meg. Tror kanskje jeg trenger en teskje:P
Prøvd å behandle datoer med time() funksjonen ?

Kode

<?php
$time = time() + 60; // Et minutt frem i tid . php.net/time for mer info
echo date('d/m/Y H:i', $time); 
?>
Noe sånn ?

Om du får dataene fra en database, og ikke orker å endre tilbake kan du vel lage en funksjon som splitter opp datoen og legger inn nødvendige parametre i mktime() , som deretter returnerer et timestamp ?
Sist endret av lsrr; 28. september 2008 kl. 02:56.
date(<Ønsket formatering>,$timestamp)
http://no2.php.net/date
Endret tabellen fra TIMSTAMP til TIME, men når jeg endrer en nyhet fra phpmyadmin blir formatet 00:00:00
Og det er bare klokkeslettet. Hva å jeg velge for å få hele datoen?

Får dette resultatet: 01/01/1970 01:33
Med koden:
$dato = $rad['dato'];
echo date('d/m/Y H:i', $dato);

Databasen har TIMESTAMP.
Bruk INT , burde holde lenge .

Edit:
Sikker på at timestamp er riktig ?
Gi meg innholdet i $rad['dato'] .
Sist endret av lsrr; 28. september 2008 kl. 03:15.
Sitat av zitcon
Bruk INT , burde holde lenge .
Vis hele sitatet...
Skal databasen stå som INT?
Hvordan skal datoen som jeg putter inn i databasen se ut da?

Innhold i $rad['dato'] er 2008-09-28 01:32:41
Hm, har aldri operert med sånne timestamps før, alltid brukt INT på kolonner med timestamp .

Om det er uaktuellt å endre alle timestampene, kan du lage en funksjon som deler opp det du allerede har , legger det inn i mktime() , som deretter spytter ut et timestamp .

Mulig det er andre løsninger for dette , jeg vet kun om den jeg bruker (som forøvrig funker perfekt) .
Så du har en felt i databasen din som heter dato og som har type INT. Og der setter du inn hva og hvordan?

EDIT: Jeg kan endre alle timestampene. har bare tre rader foreløpig. Men hva skal jeg endre det til?
Sist endret av fulloggal; 28. september 2008 kl. 03:35.
Jeg setter inn timestampet jeg får ut av funksjonen time().

time() returnerer antall sekunder siden 1970 , denne kan enkelt brukes sammen med date() funksjonen .
Har laget en enkel funksjon for konvertering fra UTC(?) til UNIX timestamp:

Kode

<?php
$date = '2008-09-28 01:32:41';
function utc_to_unix($date)
{
$s = array(
	substr($date,0,4) , 
	substr($date,5,2) , 
	substr($date,8,2) , 
	substr($date,11,2) ,
	substr($date,14,2) , 
	substr($date,17)
);

return mktime($s[3], $s[4], $s[5], $s[1] , $s[2], $s[0]) ;
}

echo date('d,m,Y H:i:s', utc_to_unix($date) );

?>
Regner med at denne koden skal kjøre feilfritt .

EDIT:
Hva er det jeg tenker med ?
funksjonen strtotime() gjør akkurat det samme som den funksjonen jeg laget til deg nå .
Begyner tydeligvis å bli litt sent for meg ..
Sist endret av lsrr; 28. september 2008 kl. 03:58.
Skjønnte ikke hvodan det ble sånn, men den virket ihvertfall. Tusen takk

Hvis noen har noe bedre forslag, fyr løs
Sist endret av fulloggal; 28. september 2008 kl. 12:13. Grunn: leif
Trigonoceps occipita
vidarlo's Avatar
Donor
Det er mysql sin versjon av timestamps. Du kan be mysql formatere det for deg, bruk t.d. date_format() og time_format() i mysql for å formatere output slik du vil. Veldig elegant eigentleg, fordi du flyttar dato-awareness vekk fra applikasjon over i database, og slipper å tenke på det sjølv.