[PHP]Rekenen

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

  • Toppe
  • Registratie: Januari 2004
  • Laatst online: 21:22

Toppe

Oké ✅

Topicstarter
Hallo,

Ik ben bezig met een soort online uren sheet, ik loop alleen op 1 ding vast en dat is het rekenen.
Ik heb dit ingevuld:

(B) Begintijd: 10:00
(E) Eindtijd: 18:00
(P) Pauze: 1:00

Als ik E-B-P doe kom ik uit op 7 uur dat klopt.

Als ik een ander sommetje aanhou (althans andere tijden):

(B) Begintijd: 10:00
(E) Eindtijd: 20:45
(P) Pauze: 1:00

Als ik E-B-P doe kom ik uit op 9 uur, dat klopt niet omdat PHP geen kwartieren aan kan...

Heeft iemand dit ook meegemaakt of hier een oplossing voor?

Alvast bedankt!!

Donstil: Je moet kopen wat je wilt hebben. Niet wat je nodig hebt!


Acties:
  • 0 Henk 'm!

  • Megamind
  • Registratie: Augustus 2002
  • Laatst online: 10-09 22:45
PHP kan heus wel kwartieren aan, als jij teminste de goeie data type gebruikt.

Ga maar eens met mktime werken.

Acties:
  • 0 Henk 'm!

  • Sebazzz
  • Registratie: September 2006
  • Nu online

Sebazzz

3dp

Parsen en dan converteren naar decimaal getal en weer terug converteren. Voor C# heb ik een Time klasse gemaakt (werkt wat lekkerder dan System.DateTime) maar het is algemeen toepasbaar en makkelijk te zien hoe ik het hebt opgelost.

Hoe doe jij je tijd? Hoe krijg je het binnen? Doe je een Timestamp?

[ Voor 16% gewijzigd door een moderator op 23-02-2009 09:13 ]

[Te koop: 3D printers] [Website] Agile tools: [Return: retrospectives] [Pokertime: planning poker]


Acties:
  • 0 Henk 'm!

  • 4Real
  • Registratie: Juni 2001
  • Laatst online: 14-09-2024
Ik heb zelf ook een Time class gemaakt (gebaseerd op System.DateTime) en ook heb ik een TimeSpan class gemaakt. In Time class kun je gewoon alles via functies toevoegen kwa data's alleen wordt alles opgeslagen als een timestamp zodat het rekenen een beetje makkelijker wordt.

Met mktime kun je data's omzetten naar timestamp zeer handig bij optellen of aftrekken van data's.

Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

Toppe schreef op zondag 22 februari 2009 @ 22:40:
Als ik E-B-P doe kom ik uit op 9 uur, dat klopt niet omdat PHP geen kwartieren aan kan...
Toch mooi hoe je, als iets je niet lukt, je maar aanneemt dat PHP niet met kwartieren kan werken. Het mag dan op sommige punten een gebrekkig product zijn maar de datum- en tijdfuncties zijn bijzonder uitgebreid en goed bruikbaar. Je bent toch niet gewoon letterlijk de strings "18:00", "10:00" en "1:00" van elkaar af aan het trekken he?

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:53

MueR

Admin Tweakers Discord

is niet lief

Leesvoer: DateTime, strtotime()

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • Yoozer
  • Registratie: Februari 2001
  • Laatst online: 03-08 17:53

Yoozer

minimoog

Toppe schreef op zondag 22 februari 2009 @ 22:40:
Als ik E-B-P doe kom ik uit op 9 uur, dat klopt niet omdat PHP geen kwartieren aan kan...
Je moet ook niet in kwartieren rekenen: reken in minuten en deel door 15.

teveel zooi, te weinig tijd


Acties:
  • 0 Henk 'm!

  • Matis
  • Registratie: Januari 2007
  • Laatst online: 10:43

Matis

Rubber Rocket

Je kan zelf in PHP hetvolgende doen:

PHP:
1
2
3
4
5
6
7
8
9
<?php
echo strtotime("now"), "\n";
echo strtotime("10 September 2000"), "\n";
echo strtotime("+1 day"), "\n";
echo strtotime("+1 week"), "\n";
echo strtotime("+1 week 2 days 4 hours 2 seconds"), "\n";
echo strtotime("next Thursday"), "\n";
echo strtotime("last Monday"), "\n";
?>


Zoals MueR zegt. Dan werk je met een soort van struct, waarmee je alles kan doen; je kan zelfs in millisecondes rekeken en dan delen door 15000.

Dus het feit dat PHP geen "kwartieren" aankan vind ik een beetje struisvogel gedrag; ik zie het niet dus het zal er wel niet zijn ;)

If money talks then I'm a mime
If time is money then I'm out of time


Acties:
  • 0 Henk 'm!

  • MueR
  • Registratie: Januari 2004
  • Laatst online: 14:53

MueR

Admin Tweakers Discord

is niet lief

Nou ja, wat TS waarschijnlijk doet is dit:
PHP:
1
2
3
4
$beginTime = '10:15';
$endTime = '18:00';
$time = $endTime - $beginTime;
echo $time; // 7, want PHP gaat hier integers van maken.

Anyone who gets in between me and my morning coffee should be insecure.


Acties:
  • 0 Henk 'm!

  • deCube
  • Registratie: Mei 2006
  • Laatst online: 13-09 09:14
Gewoon met mkTime() werken en uiteindelijk delen door 60. Dan heb je het aantal minuten.

Work hard & be brave.


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

deCube schreef op maandag 23 februari 2009 @ 10:50:
Gewoon met mkTime() werken en uiteindelijk delen door 60. Dan heb je het aantal minuten.
Niet om lullig te doen, maar dat is nu al een paar keer gezegd. Laat nu eerst de topicstarter maar weer eens langskomen om te vertellen waar hij nu eigenlijk mee bezig is (inclusief wat code). Dan kunnen we misschien iets nieuws vertellen. ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • deCube
  • Registratie: Mei 2006
  • Laatst online: 13-09 09:14
NMe schreef op maandag 23 februari 2009 @ 10:59:
[...]

Niet om lullig te doen, maar dat is nu al een paar keer gezegd. Laat nu eerst de topicstarter maar weer eens langskomen om te vertellen waar hij nu eigenlijk mee bezig is (inclusief wat code). Dan kunnen we misschien iets nieuws vertellen. ;)
Dat heb ik gezien inderdaad maar ik dacht ik leg het even simpel uit.

Work hard & be brave.


Acties:
  • 0 Henk 'm!

  • bpt
  • Registratie: Maart 2002
  • Laatst online: 03-09 14:37

bpt

In PHP versie >= 5.3.0:

$datumTijd1 = new DateTime('2009-01-01 23:45:01');
$datumTijd2 = new DateTime('2008-01-01 03:00:01');
$verschil = $datumTijd1->diff($datumTijd2);

Of anders de functie die hier te vinden is.

Als de data uit een database komt, hebben de meeste (als niet allemaal) zelf ook functies om data (als in meervoud datum) te vergelijken.
Pagina: 1