Ik heb het halve internet (naja... bij wijze dan..) al afgespeurd maar nog niet gevonden naar het geen wat ik zoek.
Wat ik wil is vrij eenvoudig te benomen. Ik wil weten hoeveel werktijd er is gaan zitten in een helpdesk ticket. Ik heb een vrij eenvoudig, maar super werkend helpdesk pakket, draaiende op een php/mysql site. De database bevat een veld "ticket_open" "lastchange" en "status". De eerste twee bevatten een timestamp YYYY-MM-DD HH:MM:SS en status 3 houdt in dat het ticket is gesloten.
Wat ik wil weten is uiteindelijk hoeveel werktijd er is gaan zitten tussen het moment dat het ticket is aangemaakt, en dat het is gesloten. En dat houdt in enkel de werktijden tussen 08.30 en 17.00uur. Het aantal seconden vind ik niet zo interessant, maar ik wil in ieder geval kunnen zien hoeveel uur en minuten er aan een ticket is gewerkt alvorens hij kon worden afgesloten.
Het resultaat moet uiteindelijk weer worden weggeschreven in het veld "workingtime".
Ik kwam deze link al tegen: http://pastebin.com/TEEjW5Ck maar mijn PHP kennis is helaas maar beperkt.
Ik zie bijvoorbeeld niet waar ik begin en eind tijd kan ingeven.... (of ligt het aan mij..??)
Hoop dat een van de experts mij op weg kan helpen! :)
- [PHP] Werktijd tussen twee timestamps
-
06-07-2015, 23:04 #1
- Berichten
- 243
- Lid sinds
- 15 Jaar
[PHP] Werktijd tussen twee timestamps
-
06-07-2015, 23:47 #2Website Ontwikkeling Puts
- Berichten
- 302
- Lid sinds
- 16 Jaar
Re: [PHP] Werktijd tussen twee timestamps
Over je begin/eind tijd vraag, check eens helemaal onderaan waar de class aangeroepen word
-
07-07-2015, 07:16 #3Particulier
- Berichten
- 35
- Lid sinds
- 17 Jaar
Re: [PHP] Werktijd tussen twee timestamps
converteer de begin en eind tijd naar een unix timestamp en trek ze van elkaar af... dan het getal delen door 3600 (60 seconden x 60 minuten) en je hebt het aantal uren dat er gewerkt is...
-
07-07-2015, 08:58 #4Particulier
- Berichten
- 71
- Lid sinds
- 16 Jaar
Re: [PHP] Werktijd tussen twee timestamps
Google eens op Mysql datediff en timediff je hoeft geen extra veld te gebruiken maar gewoon de mysql database de tijd tussen begin en eind laten berekenen.
Begin en eindtijd worden al wel opgeslagen toch?
Dus iets als:
SELECT DATEDIFF(starttijd, eindtijd) AS datum_verschil, TIMEDIFF(starttijd, eindtijd) AS tijd_verschil FROM tickets WHERE status = 'afgehandeld'
-
07-07-2015, 11:46 #5
- Berichten
- 506
- Lid sinds
- 15 Jaar
Re: [PHP] Werktijd tussen twee timestamps
Jongens, ik denk dat de TS een ander probleem stelt die niet aansluit bij jullie oplossing.
Ik heb even dit gemaakt, het is niet getest maar ik denk dat je naar zo'n oplossing moet kijken.
PHP Code:<?php
$day_start = 8.5;
$day_end = 17;
$date1 = new DateTime("2007-03-24");
$date2 = new DateTime("2009-06-26");
$diff = $date2->getTimestamp() - $date1->getTimestamp();
$interval = $date1->diff($date2);
$full_days = $interval->days - 2;
if($full_days > 0) {
// for every full day, substract the non work hours
$diff -= $full_days * (24 - ($day_end - $day_start)) * 60 * 60;
// for the last day substract morning non-work hours
$diff -= $day_start * 60 * 60;
// for the first day, substract evening non working hours
$diff -= (24 - $day_end) * 60 * 60;
}
// amount of seconds the ticket took, here you can calculate days, hours, e.d.
echo $diff;
-
07-07-2015, 12:06 #6Particulier
- Berichten
- 71
- Lid sinds
- 16 Jaar
Re: [PHP] Werktijd tussen twee timestamps
Met de beschikbare informatie is hetgeen hij vraagt niet te achterhalen. Je hebt de starttijd van een ticket en de tijd waarop hij is gesloten. Daar kun je nooit mee bepalen hoe lang iemand aan het ticket heeft gewerkt, want je kunt ook een ander ticket tussendoor doen.
De duur van de ticket dat hij open staat kun je bepalen met hetgeen ik al heb gepost. Indien je alleen de uren binnen kantoortijd wilt hebben dan is de code van Rogier een optie.
Het daadwerkelijk werken aan een ticket kun je alleen doen door tijdens het werken (dus de ticket staat in het scherm open) met AJAX requests opslaan dat je er nog aan werkt. Iets als:
databasetabel ticket_log
ticket_id
starttijd
eindtijd
- Open ticket
- Starttijd opslaan in log
- Elke minuut een ajax request, met als database query: opslaan eindtijd.
-
09-07-2015, 08:19 #7Particulier
- Berichten
- 71
- Lid sinds
- 16 Jaar
Re: [PHP] Werktijd tussen twee timestamps
En zoals zo vaak, geen enkele reactie meer van de topicstarter.
Dit was mijn laatste reactie op dit forum.
Plaats een
- + Advertentie
- + Onderwerp
Marktplaats
Webmasterforum
- Websites algemeen
- Sitechecks
- Marketing
- Domeinen algemeen
- Waardebepaling
- CMS
- Wordpress
- Joomla
- Magento
- Google algemeen
- SEO
- Analytics
- Adsense
- Adwords
- HTML / XHTML
- CSS
- Programmeren
- PHP
- Javascript
- JQuery
- MySQL
- Ondernemen algemeen
- Belastingen
- Juridisch
- Grafisch ontwerp
- Hosting Algemeen
- Hardware Info
- Offtopic