Datum invoer en ophoging

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Michel Bak

Michel Bak

23/08/2017 15:35:53
Quote Anchor link
Ik heb een vraag:

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
 
PHP hulp

PHP hulp

21/11/2024 20:48:12
 
Jan te Pas

Jan te Pas

23/08/2017 16:19:10
Quote Anchor link
Hi Michel,
Een oplossing is om de contactpersonen in een select te zetten en dan vervolgens de einddatum te laten berekenen.

Een code:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
$date = '05/06/2017';
$date = strtotime($date);
$new_date = strtotime('+ 1 year', $date);
echo date('d/m/Y', $new_date);
 
Ivo P

Ivo P

23/08/2017 16:24:47
Quote Anchor link
In de database zet je een datum (als DATE, niet als een of ander formaat dat je als mens in een zeker land zou gebruiken): 2017-08-23

Je kunt ofwel de einddatum opslaan, ofwel de gekozen duur opslaan.

De vraag was het eerste, dus dan is de code:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
INSERT INTO tabel (foo, bar, ingangsdatum, einddatum)
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.
 
Jan te Pas

Jan te Pas

23/08/2017 16:28:17
Quote Anchor link
Je moet rekening houden met de notatie, Amerikaans of Nederlands. Ik heb het hier iets eenvoudiger d/mY
$date = '05/06/2011';
$date = strtotime($date);
$new_date = strtotime('+ 1 year', $date);
echo date('d/m/Y', $new_date);
 
Ivo P

Ivo P

23/08/2017 16:36:36
Quote Anchor link
tel daar ter test eens 1 maand bij op

/ 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

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
SELECT *
FROM tabel
WHERE CURRENT_DATE + INTERVAL 30 DAY > einddatum;
-- of
WHERE CURRENT_DATE + INTERVAL 30 DAY > begindatum + INTERVAL periodekolom YEAR;
 
Michel Bak

Michel Bak

25/08/2017 22:43:36
Quote Anchor link
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.
 
Michel Bak

Michel Bak

03/09/2017 21:27:08
Quote Anchor link
Uiteindelijk heb ik er voor gekozen om het formulier gewoon in te laten vullen zonder een dropdown menu. Bedankt voor de tips
 



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.