EirikO Skrevet 1. oktober 2005 Del Skrevet 1. oktober 2005 Hvordan kan jeg finne ut om to unix-tider er samme dag? Skal finne ut om noen av tidene i en database er lagt inn en best dag... F.eks finne alle innlegg i en gjestebok som er skrevet 1/10/2005. Eller en annen bestemt dag.. Lenke til kommentar
Axentrix Skrevet 1. oktober 2005 Del Skrevet 1. oktober 2005 Sånn kan jo funke: $tidligst = mktime(0,0,0,$month,$date,$year); $senest = mktime(23,59,59,$month,$date,$year); if ($databaseverdi >= $tidligst && $databaseverdi <= $senest) { // gjores hvis datoen stemmer. } Lenke til kommentar
Lokaltog Skrevet 1. oktober 2005 Del Skrevet 1. oktober 2005 // Gitt at vi her har to UNIX-tider, $time_1 og $time_2: if(strftime('%d%m%Y', $time_1) == strftime('%d%m%Y', $time_2)) // Samme dag else // Ikke samme dag Lenke til kommentar
EirikO Skrevet 2. oktober 2005 Forfatter Del Skrevet 2. oktober 2005 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
???????? Skrevet 2. oktober 2005 Del Skrevet 2. oktober 2005 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
EirikO Skrevet 2. oktober 2005 Forfatter Del Skrevet 2. oktober 2005 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
???????? Skrevet 2. oktober 2005 Del Skrevet 2. oktober 2005 (endret) 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 2. oktober 2005 av ???????? Lenke til kommentar
Anbefalte innlegg
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 kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå