En enkel fråga: Jag använder datatypen 'timestamp' i ett fält i min MySQL-tabell. Finns det ett enkelt sätt att skriva ut timestamp-värdet i min PHP-kod som t ex '15 jul 2004'?
Timestamp i mysql
21 svar · 722 visningar · startad av web00132
Jag har testat men det funkar inte. Asså jag vet inte om MySQL skriver in rätt siffror i min tabell. Så här ser det ut:
20040715231003
Så ska väl inte timestamp se ut? Det där är ju ååååmmdd och sen tiden 23:10:03.
Om jag skriver koden...
date("l dS of F Y h:i:s A",$tabell[timestamp])
... så skriver den ut:
Tuesday 19th of January 2038 03:14:07 AM
Vad är fel?
Så här läggs timestamp in:
mktime(timme,minut,sek,månad,dag,år);
Du har datumet som det är i normalt seende..
Den koden används eg. bara om man ska skriva in ett annat datum än det just nu. Ska man använda sig av tiden just nu skriver du time();
Men jag skriver inte in en timestamp med PHP-kod, manuellt så att säga. Jag har valt datatypen 'timestamp' i MySQL. Eller vad menar du?
Jo, jag trodde du använde PHP-kod.. Men den borde ju lägga in rätt i databasen om du använder timestamp. Ska kolla...
Har kollat runt lite på phpmyadmin nu men jag får det inte att fungera.. Den skriver inte in rätt värden :/ Varför gör du inte en enkel PHP-sida då?
Ja, jag ger upp. Verkar j-t skumt det där men jag orkar verkligen inte just nu. Tack för din tid i alla fall :bire
Så lite så...
Du kan formatera en timestamp direkt i select uttrycket, har följande rad för att hämta från min guestbook:
$query="SELECT date_format(datum, '%Y-%m-%d %H:%i') as mydate,text FROM guestbook ORDER BY id DESC";
Formatet blir 2004-07-17 00:05
Ändra databastypen till INT istället och skriv php:s time(); till fältet
$sql="insert into myTable set mydate=".time()."";
eller nåt...
Personligen tycker jag det är lämpligare att använda de inbyggda datumtidformaten i MySQL, t.ex DATE, DATETIME eller TIMESTAMP.
Då har du möjlighet att utnyttja datum/tid-funktionerna i SQL-frågorna för att plocka fram dina svar.
För att presentera i det format man önskar så använder man, som GunnarD föreslår DATE_FORMAT().
Använd TIMESTAMP när du vill att tiden ska uppdateras automatiskt varje gång du gör en ändring på raden, annars använd DATETIME.l
Tack allihopa för hjälpen!
Så det var DATE_FORMAT() jag skulle använt alltså. Då vet jag :bire
Hej Matte!
Kan du förklara lite mer i detalj hur man använder date_format()
VAR skall man skriva in detta??
Mvh Magnus
Titta på GunnarD:s exempel ovan, samt följ länken jag gav, så ska det nog klarna.
Vad innebör mydate,text i hans kod-snutt?
Är lite grön.....
mydate i är exemplet namnet på hans datumkolumn, som då är av formatet DATETIME eller TIMESTAMP.
DATETIME() fungerar också mot formaten DATE och TIME, då med sina begränsningar, samt mot VARCHAR om du lagrat din tid i samma format som ovanstående format ger, men det sista finns ingen anledning till, då det bara tar mer utrymme i databasen, samt går något saktare.
Ok,
genast dök två frågor upp:
vad innebär då datum?
och
spelar det någon roll VAR i filen man klistar in denna kodsnutt?
mapsi skrev:
vad innebär då datum?
http://dev.mysql.com/doc/refman/5.0/en/date-and-time-types.html
mapsi skrev:
spelar det någon roll VAR i filen man klistar in denna kodsnutt?
Vad menar du?
Lämpligtvis i den SQL-fråga där man hämtar sitt datum för att använda/visa det.