Datum invoer en ophoging
Ik heb een formulier waarop mensen zelf een ingangsdatum in kunnen voeren wat ook in een database gezet wordt. Daarna wil ik de mensen laten kiezen of ze 1 jaar 2 jaar of 3 jaar willen toevoegen aan de ingangsdatum. Hierdoor krijg je dus meteen een eind datum, deze eind datum wil ik ook graag in een database zetten.
Opsomming:
Wat de mensen zien:
Ingangsdatum: (zelf een datum invullen)
Einddatum: (kiezen uit 1, 2 of 3 jaar dmv dropdown menu)
Wat in de database moet:
Ingangsdatum: dd-mm-jjjj
Einddatum: dd-mm-jjjj
Is dit mogelijk?
Mvg,
Michel
Een oplossing is om de contactpersonen in een select te zetten en dan vervolgens de einddatum te laten berekenen.
Een code:
Je kunt ofwel de einddatum opslaan, ofwel de gekozen duur opslaan.
De vraag was het eerste, dus dan is de code:
Code (php)
1
2
2
INSERT INTO tabel (foo, bar, ingangsdatum, einddatum)
VALUES ('foo', 'bar', '2017-08-31', '2017-08-31'+ INTERVAL 3 YEAR);
VALUES ('foo', 'bar', '2017-08-31', '2017-08-31'+ INTERVAL 3 YEAR);
Let er wel op, dat als je met de ingangsdatum gaat schuiven, de einddatum niet vanzelf meeschuift.
Zou je een kolom "aantaljaar" hebben en die vullen met het getal 3, dan blijft dat kloppen.
Toevoeging op 23/08/2017 16:26:33:
@Jan
Met gebruik van / zal regel 2 waarschijnlijk gaan voor 6 mei
Verderop op regel 4 draai je dat om.
$date = '05/06/2011';
$date = strtotime($date);
$new_date = strtotime('+ 1 year', $date);
echo date('d/m/Y', $new_date);
/ gaat voor het "amerikaanse" formaat in php.
De - als scheider zal kijken wat de plek van het jaar is, de eerste of 3e plek en in het midden de maand verwachten.
Of je moet DateTime::createfromformat() gebruiken om een afwijkend formaat te gebruiken.
Maar handig is het misschien om de ingevoerde datum in 3 delen aan te laten leveren door het script.
Ik zou sowieso niet in PHP gaan frotten met de datum om die aan te passen: dat gaat eenvoudiger in de database. Al zou de periode gewoon opslaan als getal ook wel flexibel zijn.
Dezelfde date functies kun je ook gebruiken om de bijna verlopen perioden te vinden
Ik geloof dat ik het begrijp, ga er eens mee puzzelen hoe ik dropdown maak en hierbij jullie info integreer. Bedankt vast voor de hulp.
Uiteindelijk heb ik er voor gekozen om het formulier gewoon in te laten vullen zonder een dropdown menu. Bedankt voor de tips