Rekenen met datums

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Omar

Omar

26/08/2009 18:28:00
Quote Anchor link
Hallo,

Ik probeer een functie te schrijven die automatisch overuren berekent alleen kom ik er niet uit ik heb bepaald dat na 18:00 en voor 04:00 wordt berekend onder overuren kan iemand mij de juiste richting in helpen
 
PHP hulp

PHP hulp

25/11/2024 09:35:12
 
Yearupie Achternaamloos

Yearupie Achternaamloos

26/08/2009 18:35:00
Quote Anchor link
Eerst kijken hoelaat het is en dan kijken of de uren na 18:00 of/en Voor 4:00 zijn. zo moeilijk lijkt me dit toch niet?
 
Omar

Omar

26/08/2009 18:38:00
Quote Anchor link
Ik heb dat geprobeerd zie hier een link naar mijn script
http://pastebin.com/m430a7007
 
M Ypma

M Ypma

26/08/2009 22:22:00
Quote Anchor link
date('Hi',$start) > 1800 && date('Hi',$end) > 0400

dat werkt niet he!

maak daarvan:
(int) date('Gi',$start) > 1800 && (int) date('Gi',$end) > 400

als ik jou was zou ik met 2 date objecten gaan werken... je bent nu met strings en date functies aan het kloten, het wordt echt een zooitje
Gewijzigd op 01/01/1970 01:00:00 door M Ypma
 
- SanThe -

- SanThe -

26/08/2009 22:24:00
Quote Anchor link
Moet die laatste > niet < zijn?
 
Jan Koehoorn

Jan Koehoorn

26/08/2009 22:33:00
Quote Anchor link
Hoe worden de uren dat iemand gewerkt heeft eigenlijk opgeslagen?
 
Omar

Omar

27/08/2009 00:38:00
Quote Anchor link
Ze worden nog niet opgeslagen dat zou stap 2 zijn maar eerst probeer ik dit werkend te krijgen
 
John Cena

John Cena

27/08/2009 08:54:00
Quote Anchor link
Misschien moet je eerst eens kijken hoe je het op gaat slaan.
Als je ze namelijk als DATETIME() op gaat slaan kom je al een heel eind verder en hoef je je script bij lange na niet zo groot te maken. Scheelt tijd, serverruimte, en vooral dataverkeer.
 
Willem vp

Willem vp

27/08/2009 10:49:00
Quote Anchor link
date('Hi',$end) > 1800 && date('Hi',$end) < 0400)

Ik weet wat je hier wilt doen, maar het gaat niet werken ;-)
Er zal namelijk nooit een tijdstip zijn dat EN groter is dan 1800 EN kleiner dan 0400.

Je moet de test dus opsplitsen in twee tests:

( (date('Hi',$end) > 1800 && date('Hi',$end) < 2400) ||
(date('Hi',$end) > 0000 && date('Hi',$end) < 0400) )

Is het trouwens niet handiger om de gewerkte periode op te delen in losse uren en per uur te kijken of dat in het overwerktarief valt? Volgens mij maak je daar je logica een stuk eenvoudiger mee.
Gewijzigd op 01/01/1970 01:00:00 door Willem vp
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.