Gå til innhold

Finne ut om to unix-tider er samme dag


Anbefalte innlegg

Videoannonse
Annonse

Problemet er at den ene ligger i databasen og jeg skal sjekke den mot hver dag i en kalender. Dersom det finnes innlegg på en dato, skal dagen i kalenderen utheves..

 

Må jeg da først hente ut alle tider fra databasen, gjøre de om til dd.mm.år, samenlikne med aktuell dag i kalenderen. For så å gjøre dette for hver dag?

Blir jo ganse krevende sak hvis man har mange innlegg å gå gjennom for hver dag.. (Typisk flere_hundre_innleg*31_dager=flere tusen.....)

 

Er det lurere å slenge med et felt i databasen med f.eks. måned, så jeg kan avgrense mer i mysql-spørringen?

Lenke til kommentar

Det er ikke noe hensikt å lagre unix timestamp i en database da det finnes egene dato funksjoner som du burde velge.

 

Siden det du skal hente dette ut fra en database er det to funksjoner du burde ta en kikk på: TO_DAYS() og FROM_UNIXTIME().

 

Lag en spørring er du grupperer (GROUP BY) datoen som du har konvertert til TO_DAYS(): SELECT .... GROUP BY TO_DAYS(FROM_UNIXTIME(datofeltet))

 

Da får du opp en liste med oversikt over hvilke dager det finnes en hendelse.

Lenke til kommentar

Høres jo bra ut, men får det ikke helt til, er ikke så god på mysql...

 

Har nå følgende:

 

for($i=1; $i<=$ant_dager; $i++) {
 $query = mysql_query("SELECT id FROM `innlegg` GROUP BY TO_DAYS(FROM_UNIXTIME(tid))");
if(finnes innlegg på $i-dagen) {
print("<u>$i</u>");
}else {
print($i);
}

$i har da verdiene fra 1-31(evt. 30)

 

Men hvordan sammenlikner jeg databseverdien med dagens dato??

"tid" i spørringen er unix-tid for når et innlegg ble lagt inn i databasen..

Lenke til kommentar

Okay... skal du ikke ha det verre så holder det med:

SELECT * FROM tabell WHERE TO_DAYS(FROM_UNIXTIME(tid)) = TO_DAYS(FROM_UNIXTIME($tid_fra_php))

 

Eventuelt så holder det med SELECT COUNT(felt) WHERE ....

eller så kan du rett og slett bruke en if

SELECT IF(..., "Y", "N")

Endret av ????????
Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...