Avatar billede morten-hbm Nybegynder
12. oktober 2010 - 15:57 Der er 4 kommentarer og
1 løsning

Funktion til at finde tid mellem 2 tidspunkter i en givet tidsperiode

Hej

Jeg har et problem. Jeg skal have lavet en funktion, som tjekker hvor mange timer man har haft til rådighed mellem to datoer.

Dette er jo meget nemt at finde ud af, men det er kun for en givet tidsperioden. F.eks. mellem kl. 10 og kl. 14.

Dvs.
StartDato: 11-10-2010 13:25:25
SlutDato: DagsDato (12-10-2010 15:50:20)
11/10-2010: 0 time, 34 min, 35 sek
12/10-2010: 4 timer, 0 min, 0 sek

Ialt til rådighed: 4timer, 34 min, 35 sekunder

Men hvordan laver jeg lige det? Den skal ikke tælle weekenderne med.
Jeg er helt lost i hvordan jeg skal gribe det an, så et eller flere fingerpeg ville være dejligt!
Alle tal er dynamiske.

Håber der er nogle der kan hjælpe :-)
Avatar billede cronaldo Nybegynder
12. oktober 2010 - 16:12 #1
Hvordan får du fat i variablerne StartDato og SlutDato?

Og hvad er det, du præcist vil have lavet - er det en liste over datoer eller hvad?
Avatar billede Slettet bruger
12. oktober 2010 - 16:37 #2
Det jeg ville gøre er at omskrive de 2 datoer og tidspunkter og omkskrive dem til sekunder ved at bruge en af disse funktioner: strtotime() eller mktime()

Når du har omskrevet datoerne, kan du trække dem fra hinanden og bruge resultatet i date()-funktionen.

Hvis du ikke vil have talt weekenderne med, kan du bruge de omskrevne datoer og date()-funktionen, til at bestemme hvilken dag på ugen start- og slut- datoerne er.
Med den information burde du kunne finde ud af, om en weekend er involveret og hvis der er det, så trækker du 172800 sekunder fra dit slut resultat (regnestykket: (slutdato-startdato)-172800)
1) De 172800 sekunder er 2 dage i sekunder, altså en weekend.
2) Ovenstående tager udgangspunkt i at start- og slut- datoerne ikke ligger i en weekend.

Jeg kan desværre ikke lige komme på en mere simpel metode, så håber du kan bruge følgende.
Avatar billede w13 Novice
12. oktober 2010 - 16:51 #3
Avatar billede morten-hbm Nybegynder
12. oktober 2010 - 17:37 #4
cronaldo: startDato er i unix format, slutdato er dagsdato, så den er også i unix format, date("U"). Det jeg vil have lavet, er en funktion som regner ud, hvor mange timer der er gået fra start til slut, men den skal kun tælle hvis den er inde for tidsperioden.

roxki: Tiderne står allerede i sekunder, så de to første funktioner behøver jeg ikke. Det med at regne en weekend fra, er ikke det store problem, er mere det med at finde ud af, når det er i tidsperioden.

w13: Har ikke kigget på det, havde ikke lige i tankerne om at der fandtes noget i den retning, så det vil jeg tage et nærmere kig på.
Avatar billede morten-hbm Nybegynder
18. oktober 2010 - 10:34 #5
Lukker, har ikke fået løst opgaven
Avatar billede Ny bruger Nybegynder

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.

Loading billede Opret Preview
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester