Prøv evt. med: Y-m-d H:i:s i stedet for d/m/y h:i:s
I date() funktionen.
Hvis du hiver en timestamp ud fra databasen, så kan du egentlig konvertere den til timestamp direkte uden at bruge strtotime, ved at sige noget i retning af: SELECT UNIX_TIMESTAMP(mindato) AS dato
Nu ved jeg ikke hvad du tænker på specifikt med sammenligning, men ved at konvertere til timestamp formatet (altså sekunder siden 1 januar 1970), så får du et format der er ret nemt at arbejde med (sammenligne, trække fra, lægge til, konvertere...).
Nhaa skidt med det. Jeg er bare glad for at der er nogle der gider at hjælpe :-)
Okay så er det bedre at sammenligne tider i mysql istedet for koden? F.eks skal jeg checke om 2015,2030,2045 er ledig i db'en.
Jeg vil så kalde db'en med dato og tid f.eks. 2006-06-01 20:00:00 (hvis der er en anden måde der er smart må du gerne sige det) og så skal jeg finde ud af om tiden imellem 2000 og 2045 er fri...
Ud fra det du fortæller vil det helt klart kunne gøres smart direkte i din databaseforespørgsmål. Men jeg må erkende at jeg ikke liiige at så stærk i datetime formatet (jeg har altid brugt timestamp men er lige gået over til datetime, derfor :).
Ok I see. For det her tid's check haløjsa skal nemlig bruges ved noget tidsbestilling.
F.eks kan man booke et rum 15 min af gangen. I ovenstående tilfælde vil nogle gerne booke rummet fra 20:00 til 20:45. Jeg skal så checke i min kalender om 20:00,20:15,20:30,20:44 er taget. Hvis alle er frie kan man så booke tiden. Hvis ikke skal den forslå en ny tid.
Håber det giver et mere klart billede af hvad jeg vil :-)
Tak for dit indput, fedt ;-) Det vil jeg lige prøve af når jeg komme hjem i aften. Men du nævner "sammensat indeks på starttid og sluttid" Hvad betynder det og hvad gør den indeks?
Tak for jeres hjælp, det er sku lærerigt det her......
Well, du kunne jo i stedet for at select'e "1" ud, selecte starttid og sluttid, så kunne du prøve at bruge den eksisterende starttid som din nye sluttid eller den eksisterende sluttid som din starttid og så fremdeles...
Jooh, det er jo "bare" at stille det logisk op... Her er en måde jeg lige kunne se - Det er ikke testet, men logikken er vist ok:
// Forbind database
$nystart = "2006-06-01 20:00:00";
function checkTime( $nystart, $nyslut ) { // Checker om tiden er ledig. Returnerer den der blokerer hvis der er // en, ellers returneres false $sql = " SELECT starttid ,sluttid FROM dintabel WHERE ( starttid <= '$nystart' AND '$nystart' <= sluttid ) OR ( starttid <= '$nyslut' AND '$nyslut' <= sluttid ) OR ( '$nystart' <= starttid AND sluttid <= '$nyslut' ) "; $qh = mysql_query( $sql ) or die( mysql_error() ); if ( $row = mysql_fetch_assoc( $qh ) ) { return $row; } else { return false; } }
Har taget dit svar fra 00:30:09 og har afprøvet den. Men den komme aldrig frem med et svar? Ser ud som om den kører uendeligt, nok pga while(true) er det ikke forkert? eller er der noget jeg har overset?
Det ser ud som om det virker :-) så må vi håber det er det rigtige når jeg får sat nogle andre checks på.
Tak for din super gode hjælp coderdk. Jeg splitter point så gizmo-gizmo også får en del af kagen.
Fortsat god aften.....
Synes godt om
Ny brugerNybegynder
Din løsning...
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.