Aantal dagen bereken mbv diff()

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Back-end .NET Developer

Functie omschrijving C# / .NET Developer gezocht voor een dynamische organisatie in de regio Houten! Voor een leuke organisatie in de regio Houten zijn wij op zoek naar een Back-end developer die klaar is voor een nieuwe uitdaging. In deze functie werk jij aan verschillende projecten en ga je vaak bij klanten op bezoek. Binnen deze functie kun je een grote mate van uitdaging, diversiteit en verantwoordelijkheid treffen. Bedrijfsprofiel Waar ga je werken? Het bedrijf waar je gaat werken is gespecialiseerd in het ontwerpen en implementeren van procesautomatisering en procesinformatisering. Zij doen dit onder andere voor de (petro)chemie, pharma, infra,

Bekijk vacature »

Senior Front-end Developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als Senior Front-end Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Onze klantenkring is groot en divers, dat vraagt om flexibiliteit van jou. Tegelijkertijd betekent dit dagelijks nieuwe dingen leren én dat geen werkdag hetzelfde is. Natuurlijk krijg jij de mogelijkheid je te certificeren. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling waarbij iedereen welkom is, zowel

Bekijk vacature »

Software developer - senior

Functie omschrijving Voor een echt softwarebedrijf in omgeving Gouda zijn wij op zoek naar versterking voor de afdeling Software Development! Ben jij op zoek naar een werkgever waar meerdere software developers werken aan interessante projecten? Ben jij op zoek naar een werkgever waar je onderdeel wordt van een team dat echt passie heeft voor het ontwikkelen van software? Dan ben je hier aan het juiste adres! Als softwareontwikkelaar kom je terecht bij een onafhankelijk, door kwaliteit gedreven, doortastend en daarbij op een Agile wijze werkend bedrijf. Ben jij een expert in het vertalen van Componenten van Functionaliteit naar Business lagen?

Bekijk vacature »

Software Developer

Dit ga je doen Je bent verantwoordelijk voor de warehouse applicatie die een integratie heeft met de PLC laag; Je ontwikkelt in C#/.Net; Je bent verantwoordelijk voor het ontwikkelen van interfaces en het visualiseren van componenten; Je denkt mee over het design voor business oplossingen; Je bent verantwoordelijk voor het testen van de gebouwde oplossing. Hier ga je werken Voor een internationale organisatie in de transport zijn wij momenteel op zoek naar een Software Developer. Ze zijn wereldwijd de grootste speler en lopen voorop met het automatiseren van alle processen van de warehouses. Op dit moment wordt er nog gebruik

Bekijk vacature »

Software Ontwikkelaar

Functie omschrijving Voor een echt familiebedrijf in de omgeving van 's-Hertogenbosch ben ik op zoek naar een Software Developer. Jij gaat in de functie van Software Developer werken met C# en .NET framework Jij gaat maatwerk software ontwikkelen en softwareoplossingen creëren. Daarnaast optimaliseer je de bestaande software. Oplossingen waar de klant echt iets aan heeft, jij krijgt er energie van op dit te realiseren. Je gaat werken in een Microsoft omgeving(ASP.NET) en gebruikt daarnaast C# en MVC. Samen met het huidige IT team binnen deze organisatie verwerk je de wensen van de klant tot een (eind)product. Bedrijfsprofiel Deze organisatie is

Bekijk vacature »

C# .NET Software Ontwikkelaar

Functie omschrijving C# .NET Developer gezocht. Ben jij een full stack developer die op zoek is naar een nieuwe uitdaging binnen een leuk snel groeiend bedrijf? Lees dan snel verder! Wij zijn op zoek naar een Developer met ervaring op het gebied van .NET die een organisatie in de regio Arnhem gaat versterken. Jij gaat je binnen dit bedrijf vooral bezighouden met het verbeteren van de functionaliteiten van hun dataplatform. Samen met andere ontwikkelaars denk je mee in oplossingsrichtingen, architectuur en nieuwe technologieën. Als C# .NET Developer binnen dit bedrijf houd je je niet alleen bezig met het verbeteren van

Bekijk vacature »

.Net developer

Sogeti is een organisatie met een goede werksfeer en zo min mogelijk hiërarchische verhoudingen. Ga je bij ons als .Net Developer aan de slag? Dan werk je dagelijks met collega’s aan de mooiste IT-projecten. Als developer bouw je in DevOps teams aan enterprise applicaties, nieuwe IOT, Chatbots of AI oplossingen. Deze snelgroeiende groep collega’s krijgt energie van hun vak en dat merk je op de werkvloer. Natuurlijk krijg jij de mogelijkheid je te certificeren in dit vakgebied. We organiseren regelmatig technische Meet-ups en doen we veel aan kennisdeling. Mede hierdoor zij wij vorig jaar Microsoft Partner of the year geworden.

Bekijk vacature »

Junior full stack developer

Functie Als full stack developer binnen onze organisatie ga jij je bezig houden met het bouwen van de user experience van de webapplicaties. Je bent verantwoordelijk voor het vertalen van concepten, briefings en designs naar werkende functionaliteit. Hierbij zorg je ervoor dat applicaties betrouwbaar, veilig en toekomstbestendig zijn en een goede architectuur hebben en behouden. Verder denk je actief na- en mee over nieuwe ontwikkelingen en functionaliteiten om zo elke dag de klantervaring weer te verbeteren. Dit doe je natuurlijk niet alleen maar in een development team. Het team bedraagt momenteel 4 man bestaande uit 2 devops engineers en 2

Bekijk vacature »

Full stack developer

Wat ga je doen als Full stack .NET developer Microsoft 365? Je stelt je op als sparringpartner voor het team en PO over toekomstige functionaliteiten, architectuur en mogelijke nieuwe producten. Je bent mede-verantwoordelijk voor het vertalen en omzetten van een user story in een passend technisch design. Je implementeert functionaliteiten op basis van een technisch design en user story. Je bent mede-verantwoordelijk voor het beheer van Azure DevOps, waaronder het beheer van GIT, Build Pipelines, Release Pipelines en geautomatiseerde testen. Hier herken jij jezelf in Hbo werk- en denkniveau of hoger aangevuld met relevante certificeringen en/of cursussen; Minimaal 3 jaar

Bekijk vacature »

Medior Java developer (fullstack)

Wat je gaat doen: Of beter nog, wat wil jij doen? Binnen DPA GEOS zijn we dan ook op zoek naar enthousiaste Java developers om ons development team te versterken. Als Java developer werk je in Agile/Scrum teams bij onze klanten en daarbij kun je eventueel ook andere ontwikkelaars begeleiden in het softwareontwikkelproces. Verder draag je positief bij aan de teamgeest binnen een projectteam en je kijkt verder dan je eigen rol. Je gaat software maken voor verschillende opdrachtgevers in jouw regio. Je bent een professional die het IT-vak serieus neemt en kwaliteit levert. Je leert snel vanwege je diepgaande

Bekijk vacature »

Randstad - Freelance Backend Developer/ Data Engin

Starting date: 10.05.2023 Salary range: €67,00 - €77,00 Duration: 6 months Hours: 40 Working model: Hybrid* MUST be NL based Job description: Our vision is to have a consistent and data driven experience for all sales across all our operating companies. Our mission is to enable our salespeople to be able to reach out to the right company at the right time. We do this by creating data driven micro services and solutions. We mainly focus on implementation in the Google Cloud but also integrate with local systems and other cloud solutions. A typical day: As a back-end developer you

Bekijk vacature »

.NET Developer

Dit ga je doen Binnen het team bouw je aan een applicatie met andere .Net Developers, testers een Product Owner en een Business Analyst. Met het team wordt de backlog besproken. In overleg claim jij jouw deel en zorgt ervoor dat onderhoud en innovatie wordt gerealiseerd. Het project dat momenteel draait is het opgraden van de omgeving. Doorontwikkelen van de huidige applicatie; Overleggen met teamleden om de backlog te verdelen; Onderhouden van de huidige omgeving; Sparren met de business en het ophalen van nieuwe requirements. Hier ga je werken De organisatie is een van de grootste landelijke aanbieder van diverse

Bekijk vacature »

Database developer - SQL

Functie omschrijving Kan jij goed overweg met complexe algoritmes en het schrijven van procedures in T-SQL? Heb jij al wat ervaring opgedaan met SQL en vind je het tijd voor de volgende stap? Lees dan snel verder! Dit software bedrijf, gespecialiseerd in de ontwikkeling van logistieke software, is op zoek naar een ervaren SQL database developer. Jouw werkzaamheden zullen onder andere bestaan uit: Je sluit aan bij meetings en brengt het gehele logistieke proces in kaart. Vervolgens ga je als lead developer aan de slag om de klus te klaren. Je stuurt het junior developer team en helpt, zo nodig,

Bekijk vacature »

Senior Product Developer

Functieomschrijving Als senior Product Developer ben je verantwoordelijk voor bestaande mobiliteitsproducten en de ontwikkeling van nieuwe mobiliteitsconcepten. Met behulp van diverse klantonderzoeken, klantsessies en salesmeetings zorg je ervoor dat je de veranderende mobiliteitsbehoeften in de markt kent. Hier speel je op in door innovatieve, flexibele, efficiënte en duurzame vervoersoplossingen te bedenken, te ontwikkelen, te implementeren en uiteindelijk samen met Sales en Marketing collega’s in de markt te zetten. Je initieert en neemt deel aan (internationale en afdeling overschrijdende) projecten, vaak in de rol van projectleider. In die rol bewaak je de voortgang, coördineer je de activiteiten en zorg je voor

Bekijk vacature »

Full-stack Developer

As a Full-stack developer at KUBUS, you will develop the (web)applications and services of BIMcollab. You will work on both the front- and back-end. As a software company, KUBUS is in a unique position. We build our own products that are used by tens of thousands of users worldwide. Our company is just the right size: big enough to make a real impact in the market, but small enough that as an individual developer you can have an impact and really make a difference. Our development team consists of over 40 developers, testers, scrum masters and product owners, divided over

Bekijk vacature »
- DHU -

- DHU -

31/03/2020 21:28:29
Quote Anchor link
Hi Guyz,

Ik zit weer eens met een vraagstuk... ik wil het aantal dagen bereken tussen twee datums..

daarvoor dacht ik onderstaand stukje codering te kunnen gebruiken:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
//* RECONCILATION INSTELLINGEN        
$originalReconcileDate = $sqlData['Z_SYSTEM_RECONCILE_TIMESTAMP'];
$dateToday = new DateTime(date("Y-m-d H:i"));
$newReconcileDate = date("d-m-Y H:i", strtotime($originalReconcileDate));
$diff = $dateToday->diff($originalReconcileDate);
            
if($newReconcileDate == "01-01-1970"){
echo '<td></td>';
}else{
echo '<td>'.$newReconcileDate.'</td>';
}



echter ik krijg de foutmelding:
Warning: DateTime::diff() expects parameter 1 to be DateTimeInterface, string given in C:\wamp64\www\BP\members\inc\plugin.php on line 2332

echter ik kan 'm niet plaatsen... zal wel iets lulligs zijn maar ik staar me blind.... iemand een idee waar het manco zich bevind?
 
PHP hulp

PHP hulp

05/11/2024 15:35:54
 
- Ariën  -
Beheerder

- Ariën -

31/03/2020 21:53:06
Quote Anchor link
De error is toch duidelijk?

Er wordt een DateTimeInterface verwacht, en geen string uit je database: $originalReconcileDate.
Dus gebruik $dateToday als argument in die $diff, en gebruik $sqlData['Z_SYSTEM_RECONCILE_TIMESTAMP'] in je new DateTime.

Big chance dat het dan beter gaat.
Gewijzigd op 31/03/2020 21:54:33 door - Ariën -
 
- DHU -

- DHU -

31/03/2020 22:16:35
Quote Anchor link
De error is niet duidelijk!
Niet iedereen zit op Admin niveau :-).... ik probeer het te begrijpen.. (Wat me overigens nog niet lukt hoor.. maar dat terzijde)...

ik doe ook mijn stinkende best..... en gaat wel steeds beter maar ik wil d'r steeds wat bij leren... en ik ik wil het dan ook snappen... maar t'is en blijft lastig om met datums te klooien
 
Thomas van den Heuvel

Thomas van den Heuvel

31/03/2020 22:22:16
Quote Anchor link
$newReconcileDate zou dus geen date() (timestamp) moeten zijn, maar een DateTime-object, dan kun je met diff() aan de slag.

edit: en je hebt dus sowieso $newReconcileDate nodig (maar dan in het goede formaat), en niet $originalReconcileDate :).
Gewijzigd op 31/03/2020 22:24:32 door Thomas van den Heuvel
 
- Ariën  -
Beheerder

- Ariën -

31/03/2020 22:33:48
Quote Anchor link
Dirk Huizinga op 31/03/2020 22:16:35:
De error is niet duidelijk!
Niet iedereen zit op Admin niveau :-).... ik probeer het te begrijpen.. (Wat me overigens nog niet lukt hoor.. maar dat terzijde)...

ik doe ook mijn stinkende best..... en gaat wel steeds beter maar ik wil d'r steeds wat bij leren... en ik ik wil het dan ook snappen... maar t'is en blijft lastig om met datums te klooien

Gelukkig heb je ook https://www.php.net/manual/en/class.datetime.php
En dan de Table of Contents, waarin de functies worden besproken.
 
Thomas van den Heuvel

Thomas van den Heuvel

31/03/2020 22:40:25
Quote Anchor link
@Ariën heeft wel een punt. Leren programmeren wordt zoveel makkelijker wanneer je de foutmeldingen kunt interpreteren. Dit verschaft je enorm veel inzicht. Plus alles is goed gedocumenteerd op php.net. Je kunt daar gewoon DateTime in het zoekvakje inkloppen en je krijgt direct (klasse)definities.

Op deze manier kun je op den duur precies identificeren waar het misgaat, en wat er misgaat. En op een gegeven moment wordt het letten op dit soort fouten tijdens het schrijven van code een tweede natuur, zodat je deze in eerste instantie niet meer maakt, of in ieder geval een groter bewustzijn hebt van de typen van de parameters die functies en methoden verwachten, deze zijn namelijk bijna altijd van een redelijk specifieke voorgeschreven vorm.

In zekere zin is dit weer een vraagstuk waar "het probleem niet het probleem" is, maar het verzamelen van informatie over + het interpreteren van de foutmelding.
 
- DHU -

- DHU -

31/03/2020 22:50:37
Quote Anchor link
Zucht.... het is toch niet te doen om hele master class te moeten volgen om twee datums van elkaar af te trekken... gooi de handdoek dan maar meteen in de ring en gaat men maar lekker die datums met hoof uitreken...
Je moet verdorie op php.net elke keer een hele statenbijbel doornemen....

jongens bedankt voor het pogen.... maar dit gaat met teveel tijd inzitten.. als ik ooit eens wat meer tijd heb ga ik me er misschien in verdiepen.
 
- Ariën  -
Beheerder

- Ariën -

31/03/2020 23:15:29
Quote Anchor link
Je overdrijft wel behoorlijk hoor met je 'master-class'.
Misschien dat je het nu even niet ziet zitten om je concentratie erbij te houden. Ga dan even wat anders doen: Boek lezen, kattenfilmpjes kijken, of lekker naar bed en dan ben je morgen weer fris en fruitig. ;-)
Gewijzigd op 31/03/2020 23:15:41 door - Ariën -
 
Thomas van den Heuvel

Thomas van den Heuvel

31/03/2020 23:22:52
Quote Anchor link
Maar er wordt je twee keer verteld wat je zou moeten aanpassen.

Je moet het zo zien, de methode verwacht een appel, en je stopt er een peer in. Dat past niet. Zorg dat het formaat appel is, en het gaat goed.

En blijkbaar geldt er ook een speciale conditie ($newReconcileDate == "01-01-1970"), in welk geval je in het geheel geen vergelijking hoeft te doen? Mogelijk is het een idee om die datums dan als NULL-waarde op te slaan in je database, dan kun je simpelweg vergelijken met NULL.

Wat is trouwens het formaat van $sqlData['Z_SYSTEM_RECONCILE_TIMESTAMP']? Is dit gewoon een UNIX-timestamp? Dan kan de code waarschijnlijk ook nog wat korter. Helemaal handig zou het zijn als deze informatie ook gewoon als (NULLable) DATETIME-kolom wordt opgeslagen, dan hoef je ook niet tig vertaalslagen uit te voeren.
 
- DHU -

- DHU -

01/04/2020 10:56:14
Quote Anchor link
Om het proces af te ronden :-)

ik heb in mijn SQL SELECT de datum format van de tabel Z_SYSTEM_RECONCILE_TIMESTAMP aangegeven. De uren, minuten en secondes zijn in deze nl niet zo van belang.

Dit heb ik als volgt gedaan:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
$sql = "SELECT DATE_FORMAT(idm_doelsysteem.Z_SYSTEM_RECONCILE_TIMESTAMP, '%d-%m-%Y') AS originalReconcileDate,

enz, enz enz


Voor uiteindelijk het verschil tussen twee datums weer te geven heb ik dit als volgt gedaan:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
//* RECONCILATION INSTELLINGEN
            $reconDay = new DateTime($sqlData['originalReconcileDate']);
            $dateToday = new DateTime();
            $diff = $dateToday->diff($reconDay);
            
            if($sqlData['originalReconcileDate'] == NULL){
                echo '<td><font color="red">Nog geen recon ingericht!</font></td>';
            }else{
                echo '<td>'.$reconDay->format('d-m-Y').' <font size="1">('.$diff->format('%d dagen geleden').')</font></td>';


Opmerking: Goeie tip om wat anders te doen. Als je er een lange dag op hebt zitten en en je blind staart moet je dit soort dingen dus gewoon niet doen....

Bedankt voor alle goed bedoelde adviezen.
Gewijzigd op 01/04/2020 10:57:32 door - DHU -
 
Ivo P

Ivo P

01/04/2020 19:55:00
Quote Anchor link
Wist je dat Mysql dat ook al voor je uit kan rekenen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT Z_SYSTEM_RECONCILE_TIMESTAMP, TO_DAYS(Z_SYSTEM_RECONCILE_TIMESTAMP) - TO_DAYS(NOW()) as verschil
FROM tabel
 
Jan R

Jan R

01/04/2020 20:42:16
Quote Anchor link
Ik lees elke keer iets van jou als "de handdoek in de ring gooien". Als je de fout gewoon googled zie je dat er al velen voor jou ook het probleem hadden. Ik hoor er ook bij. Je moet natuurlijk wel ook eens iets proberen.
Met vallen en opstaan lukt veel. Ok het gaat wat traag:)
Je kan toch niet willen dat de mensen hier jouw code schrijven.

Enkel als voorbeeld: Net een scriptje van vroeger eens hermaakt. Dubbel zo snel en 3k kleiner. Gewoon betere query's.
 
- DHU -

- DHU -

01/04/2020 21:26:54
Quote Anchor link
Ivo P op 01/04/2020 19:55:00:
Wist je dat Mysql dat ook al voor je uit kan rekenen?

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
SELECT Z_SYSTEM_RECONCILE_TIMESTAMP, TO_DAYS(Z_SYSTEM_RECONCILE_TIMESTAMP) - TO_DAYS(NOW()) as verschil
FROM tabel




Hmmm interesting.. thnx... Ga ik zeker mee experimenteren. Heb nl wel op meerdere plekker het vershil dagen benodigd.. Lekker kort en krachtig. Komt de code alleen maar ten goede
 
Thomas van den Heuvel

Thomas van den Heuvel

02/04/2020 02:18:55
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
<?php
//* RECONCILATION INSTELLINGEN
$reconDay = new DateTime($sqlData['originalReconcileDate']);
$dateToday = new DateTime();
$diff = $dateToday->diff($reconDay);
            
if($sqlData['originalReconcileDate'] == NULL){
    echo '<td><font color="red">Nog geen recon ingericht!</font></td>';
}
else{
    echo '<td>'.$reconDay->format('d-m-Y').' <font size="1">('.$diff->format('%d dagen geleden').')</font></td>';
}

?>

Je maakt hier wel een fout, en een aantal dingen kunnen handiger gestructureerd worden. Je kunt er natuurlijk ook voor kiezen om alles in de query te regelen maar mogelijk is het handiger/makkelijker om code aan te passen dan SQL, dit moet je zelf weten.

Allereerst (en dit is dus een echte fout): DateInterval heeft formatteringsregels die mogelijk anders werken dan je zou denken. Het %d formatteringskarakter geeft je het aantal dagen verschil na aftrek van eventuele maanden.

Stel je hebt dus bijvoorbeeld 1 april en 2 mei, dan levert %d jou 1 (1 maand en 1 dag) in plaats van 31 dagen, wat je misschien zou verwachten. Hiervoor is %a bedoeld, zie ook de documentatie. Misschien wil je dat nog even aanpassen als je deze aanpak nog gebruikt voordat er mensen in de paniek schieten :p.

Dan ga je dingen uitrekenen die mogelijk helemaal niet uitgerekend hoeven te worden. Nu maakt dat in dit geval niet zo uit voor de snelheid, maar wat als deze berekening vele male complexer/duurder was? Staat je webserver mogelijk heel vaak te stampen op dingen die niet eens nodig zijn... dit is pure verspilling. Begin dus met het if-statement.

Ook kun je de programmeer- en weergavelogica verder uit elkaar trekken zodat je uiteindelijk een duidelijke streep tussen deze twee kunt aanbrengen.

Bijvoorbeeld dus als volgt:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?php
if ($sqlData['originalReconcileDate'] == NULL) {
    $class = 'warning'; // geef het ding een opmaak
    $output = 'Nog geen recon ingericht!';
}
else {
    // hier ga je pas rekenen
    $reconDay = new DateTime($sqlData['originalReconcileDate']);
    $dateToday = new DateTime();
    $diff = $dateToday->diff($reconDay);

    $class = 'message';
    $output = $reconDay->format('d-m-Y').' <span>('.$diff->format('%a').' dag(en) geleden)</span>';
}

?>
<td class="<?php echo $class; ?>"><?php echo $output; ?></td>

Hier verplaats je ook hoe td.warning, td.message en td.message span er verder uitzien naar een stylesheet, dit wil je loskoppelen van de HTML, mocht je dit ooit nog willen aanpassen dan kun je dat puur in CSS regelen en hoef je geen code op te breken...
Gewijzigd op 02/04/2020 02:27:35 door Thomas van den Heuvel
 
- DHU -

- DHU -

02/04/2020 21:02:02
Quote Anchor link
Top dank je wel voor je uitgebreide toelichting. De DateInterval had ik inderdaad gelezen maar vergeten aan te passen. Dit is inmiddels doorgevoerd.

Ik heb dit nooit kunnen bedenken om een berekening met if statement te beginnen. Maar ondank ik in dit geval niet zoveel merk van de berekeninstijd hoor... deze gaat rap genoeg..maar inderdaad met 'n wat complexere berekening zou dit zo maar anders kunnen. Goed punt.

Dan over de opmaak... ik ben ook maar 'n ouwe zak hoor.. ik kom nog uit de html 1.0 periode. CSS wat was dat :-)
Ben daar helemaal niet in meegegroeid dus ik betrap me er vaak op dat ik de opmaak elke keer tussen de codering plaats. Ook hier onderga ik nog een leerproces:

Maar ik wil je nogmaals bedanken voor deze toelichting. Top!!!
 



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.