ik wil graag een functie maken die van een bepaalde datum de datum berekend van 4 maanden ervoor.
dus een afloopdatum - 4 maanden = vervolgactiedatum
dat is simpel gezegt de bedoeling.
nu heb ik al wel iets simplistisch gemaakt dmv een switch
maar dit is zo belachelijk slecht dat ik deze functie echt niet kan behouden want het is zo fragile als de pest
de vraag is dus hoe dit met PHP gemakkelijk op kan worden gelost
op www.php.net kon ik zelf niet echt een leuke functie hiervoor vinden helaas.
het nadeel van mij switch is dus dat het totaal geen rekening houd met dagen zoals 28 en 29 februari
nu wordt het lekker fijn 30 februari als de afloopdatum 30 juni is
dit kan dus niet en mag natuurlijk ook niet
naja vooruit hier mijn weirdo functie dan toch maar
dus geen reacties omtrent hoe fout dit kan zijn aub want dat weet ik ook wel
p.s. ik moest ff tijdelijk iets hebben om verder te kunnen met het project
en heb het dus zo ff snel opgelost en het werkte "globaal" (februari natuurlijk niet meegerekend)
natuurlijk stond deze functie nog mijn buglist want dit moet natuurlijk beter kunnen
dus een afloopdatum - 4 maanden = vervolgactiedatum
dat is simpel gezegt de bedoeling.
nu heb ik al wel iets simplistisch gemaakt dmv een switch
maar dit is zo belachelijk slecht dat ik deze functie echt niet kan behouden want het is zo fragile als de pest
de vraag is dus hoe dit met PHP gemakkelijk op kan worden gelost
op www.php.net kon ik zelf niet echt een leuke functie hiervoor vinden helaas.
het nadeel van mij switch is dus dat het totaal geen rekening houd met dagen zoals 28 en 29 februari
nu wordt het lekker fijn 30 februari als de afloopdatum 30 juni is
dit kan dus niet en mag natuurlijk ook niet
naja vooruit hier mijn weirdo functie dan toch maar
dus geen reacties omtrent hoe fout dit kan zijn aub want dat weet ik ook wel
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
| /** * Functie voor het berekenen van de vervolgactiedatum (4 maanden ervoor) *@return $vervolgactiedatum. */ function vervolgActieDatumBerekenen($afloopdatum) { $afloopdatumarray = explode("-",$afloopdatum); $vervolg_datum_dag = $afloopdatumarray[0]; $vervolg_datum_maand = $afloopdatumarray[1]; $vervolg_datum_jaar = $afloopdatumarray[2]; switch (intval($vervolg_datum_maand)) { case "01": $vervolg_datum_maand = "9"; $vervolg_datum_jaar = intval($vervolg_datum_jaar) - 1; break; case "02": $vervolg_datum_maand = "10"; $vervolg_datum_jaar = intval($vervolg_datum_jaar) - 1; break; case "03": $vervolg_datum_maand = "11"; $vervolg_datum_jaar = intval($vervolg_datum_jaar) - 1; break; case "04": $vervolg_datum_maand = "12"; $vervolg_datum_jaar = intval($vervolg_datum_jaar) - 1; break; case "05": $vervolg_datum_maand = "01"; break; case "06": $vervolg_datum_maand = "02"; break; case "07": $vervolg_datum_maand = "03"; break; case "08": $vervolg_datum_maand = "04"; break; case "09": $vervolg_datum_maand = "05"; break; case "1": $vervolg_datum_maand = "9"; $vervolg_datum_jaar = intval($vervolg_datum_jaar) - 1; break; case "2": $vervolg_datum_maand = "10"; $vervolg_datum_jaar = intval($vervolg_datum_jaar) - 1; break; case "3": $vervolg_datum_maand = "11"; $vervolg_datum_jaar = intval($vervolg_datum_jaar) - 1; break; case "4": $vervolg_datum_maand = "12"; $vervolg_datum_jaar = intval($vervolg_datum_jaar) - 1; break; case "5": $vervolg_datum_maand = "01"; break; case "6": $vervolg_datum_maand = "02"; break; case "7": $vervolg_datum_maand = "03"; break; case "8": $vervolg_datum_maand = "04"; break; case "9": $vervolg_datum_maand = "05"; break; case "10": $vervolg_datum_maand = "06"; break; case "11": $vervolg_datum_maand = "07"; break; case "12": $vervolg_datum_maand = "08"; break; } $vervolgactiedatum = $vervolg_datum_dag."-".$vervolg_datum_maand."-".$vervolg_datum_jaar; return $vervolgactiedatum; } |
p.s. ik moest ff tijdelijk iets hebben om verder te kunnen met het project
en heb het dus zo ff snel opgelost en het werkte "globaal" (februari natuurlijk niet meegerekend)
natuurlijk stond deze functie nog mijn buglist want dit moet natuurlijk beter kunnen
Intel© Conroe E6600 | Asus P5Q PRO Turbo | Sapphire Vapor-X HD5770 1GB | G.E.I.L. 2 GB DDR2-667 Kit CL4 4-4-12 | WD Caviar SE16 2x250GB (S-ATA2) (Raid0) | Sunbeam Trio | Chaintec CFT-500A | Windows XP Pro SP3 | Samsung Syncmaster S23A350H