webForumDet fria alternativet

Spara och läsa timestamps

PHP

11 svar · 242 visningar · startad av Alpha II

Medlem sedan maj 20002 993 inlägg
Frågan#1

Hej!
Hur sparar man ett timestamp i en databas och hur hur formaterar man det på sidan? När jag försöker att formatera ett timestamp ("m/d/Y") så blir det 01/19/2038. Hur ska jag göra för att spara en tid och sedan kunna läsa den?

------------------
I have not failed. I´ve just found 10.000 ways that won´t work. // Thomas Edison

Medlem sedan juni 20008 205 inlägg
#2

MySQL? Kolla in funktionen DATE_FORMAT (eller var det FORMAT_DATE?) i din dokumentation.

------------------
These are the cries of the carrots, the cries of the carrots! You see, Reverend Maynard, tomorrow is harvest day and to them it is the holocaust.

Medlem sedan feb. 2000280 inlägg
#3

Jag tycker det är lättare att spara in den med php's time() function sedan använda functionen strftime() när man skall omformatera..

------------------
BABBA

/ * It's not a lie if you believe it * /
http://www.webbkontor.com

Medlem sedan maj 20002 993 inlägg
#4

BABBA, det är så jag har gjort men va fan(!) det funkar ju inte!

------------------
I have not failed. I´ve just found 10.000 ways that won´t work. // Thomas Edison

Medlem sedan juni 20001 251 inlägg
#5

Lägg till:

<?
$timestamp=time();
mysql_query("INSERT INTO datumtest (id, datum) VALUES ('1', '$timestamp')");
?>

Formatera:

<?
$hamta = mysql_fetch_array(mysql_query("select * from datumtest where id='1'"));
$datum=date("m/d/Y",$hamta[1]);
echo $datum;
?>

------------------
SteveNet
------------------
- Det var motgräs!
Roland Sandberg förklarar varför han missade öppet mål.

Medlem sedan maj 20002 993 inlägg
#6

Det fungerar att formatera datumet i queryn men inte med date. :(
Varför är timestampen i php i ett annat format än i mysql?

Varför fungerar inte det här?

$lmodified = filemtime("filnamn.txt");
if($lmodified > $variabel_från_databas["LastModified"]) {
mysql_query("UPDATE FileList SET LastModified='$lmodified' WHERE ID='1'");

------------------
I have not failed. I´ve just found 10.000 ways that won´t work. // Thomas Edison

Medlem sedan juni 200145 inlägg
#7

om jag vill timestampa någonting brukar jag oftast använda date("U") som returnerar linuxtime

har även gjort ett php & mysql login script som baseras på linuxtime .. fungerar mycket bättre än sessioner & mysql enligt mig..

MVH

------------------
Johan Bergström

Medlem sedan juni 200145 inlägg
#8

vill bara påpeka att jag menar unix time, inte linuxtime ;)

undra va linux time kan vara egentligen.. måste ju finnas

------------------
Johan Bergström

Medlem sedan maj 200139 inlägg
#9

Kanske kan påpeka att timestamp i MySQL ändras när man ändrar något i den posten. Det gör att den sätts automatiskt när du ändrar det andra fältet 'id'.
Det betyder att detta:
<?
$timestamp=time();
mysql_query("INSERT INTO datumtest (id, datum) VALUES ('1', '$timestamp')");
?>
gör sama sak som detta:
<?
mysql_query("INSERT INTO datumtest (id) VALUES ('1')");
?>

Medlem sedan maj 20002 993 inlägg
#10

Men varför blir timestampen olika i php och mysql? Hur gämför man tid?

$lmodified = filemtime("filnamn.txt");
if($lmodified > $timestamp_från_databas)
bla bla bla

Den här koden fungerar inte eftersom $timestamp_från_databas:s format inehåller fler siffror än $lmodified...

------------------
I have not failed. I´ve just found 10.000 ways that won´t work. // Thomas Edison

Medlem sedan juni 200145 inlägg
#11

anledningen till att de blir olika är väl bara att det är olika standarder. mysql har sin och php har sin

jag kanske har fel, men ser ingen annan bra förklaring på problemet

------------------
Johan Bergström

Medlem sedan maj 200139 inlägg
#12

MySQL har det här formatet:
YYYYmmddhhmmss
Man kan i tabellen sätta att den endast ska använda ett visst antal siffror räknat från vänster. Om du sätter det till 10 så blir formatet:
YYYYmmddhh
Formatet som filemtime() ger dig verkar vara unixtime.
Du får då formatera det med date() som nedan:
$lmodified=date("Ymdhis", filemtime($file));

Hoppas att det hjälper dig.

[Redigerat av Bones_Junior den 07 jun 2001]

273 ms totalt · 4 externa anrop · v20260731065814-full.e96017d9
121 ms — deklarationer (db)
0 ms — hämta statistik (cache)
147 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)