Spara datum i databasen som ett unix-timestamp dvs sekunder sedan ett fixt datum mha time() så blir det mesta mycket enklare... Då behöver du bara jämföra om time()-(tiden ur databasen)>24*60*60!
/nicclas
[Redigerat av nicclas den 09 maj 2001]
13 svar · 345 visningar · startad av Niklasson
Sökte lite men hittade inget perfekt exempel..
Jag behöver en kodsnutt som kollar om datumet i tabellens fält "datum" är äldre eller nyare än 24 timmar. Tänkte göra en indikation på nya inlägg i ett forum..
Vet inte om det är viktigt, men datumformatet kommer troligtvis vara 2001-05-09 22:45:00
Lika tacksam för hjälp som vanligt..
Spara datum i databasen som ett unix-timestamp dvs sekunder sedan ett fixt datum mha time() så blir det mesta mycket enklare... Då behöver du bara jämföra om time()-(tiden ur databasen)>24*60*60!
/nicclas
[Redigerat av nicclas den 09 maj 2001]
Det låter bra, men hur gör jag? Jag har ett annat script nånstans som gör detta, men vore tacksam om jag fick mer hjälp..
det datum du skall spara får du så här:
$datum = date("U");
för att sedan jämföra det
$nudatum = date("U");
$nudatum -= 86400;
if ($datum < $nudate)
{
här kan du göra saker om db-tiden är äldre.
}
else
{
annars...
}
Detta stöder inte vårdagjämning och sådant, detta kan lösas med hjälp av att man använder mktime.
kommer ex av en polare strax...
//skiver fel som vanligt ...
Sparat datum:
$datum = date("U");
Resten:
$i_gar = mktime (date("H"), date("i"), date("s"), date("m"), date("d")-1, date("Y"));
if ($datum < $i_gar)
{
här kan du göra saker om db-tiden är äldre.
}
else
{
annars...
}
PHP fixar själv kollen om det är vårdagjämning och sånt där.
MAO även om dygnet är 23 eller 25 timmar så kommer det att fungera.
Lite 'overkill' kanske... men det är trevligt med grejer som fungerar till 100%.
Ser ut att fungera bra, men vad för typ av fält skall jag använda i mySQL-tabellen och hur får jag datumet utskrivet på sidan i det formatet som jag vill ha det?
Hallå? Någon..
Olika datatype för tid od i mysql:
http://www.mysql.com/doc/D/a/Date_and_time_types.html
Datumformatering i PHP
http://www.php.net/manual/en/function.date.php
date("Y m d H:i:s")
ger
2001 05 10 23:38:20
Jag vet att $datum = date("Y-m-d H:i:s"); ger mig 2001-05-11 00:45:25 - men problemet är ju att jag inte fattar hur allt skall hänga ihop. Om jag måste göra en timestamp så måste jag ju kunna hämta det värdet ur databasen och visa det för besökaren som 2001-05-11 00:45:25 istället för timestampet som bara består av en massa olika siffror.
Nån som förstår mitt problem?
Har bara använt pgSQL, men det borde finnas något fält för motsvarande int4, dvs siffror.
Du får kolla hu stort fältet behöver vara.
När du har sparat siffrorna du får från exemplen oven i db'n har du ju ett timestamp som ligger i db'n, när du sedan vill visa detta kan du ex skriva
$datumut = date("Y-m-d H:m:s", $datumfråndb);
nu får du en fint formaterad tid, ner till sekunder i $datumut.
Hoppas det var detta du undrade, annars får du fråga igen
Hmm.. jag får inte detta att fungera..
while ($rowS = mysql_fetch_array($res2)) {
$datumet = $row[datum];
$i_gar = mktime (date("H"), date("i"), date("s"), date("m"), date("d")-2, date("Y"));
if ($datumet < $i_gar)
{
$vad = "";
}
else
{
$vad = "<img src=\"new.gif\" width=\"30\" height=\"12\" alt=\"Senaste 2 dagarna\">";
}
echo "$vad\n";
}
och datumet är nedsparat i databasen så här: $datum = date("U");
bilden new visas hela tiden..
Någon ? . behöver hjälp .. pronto