login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Datum en Tijd > Datumreeks

Datumreeks

Auteur: Stefan14 - 27 december 2009 - 18:54 - Gekeurd door: Koen - Hits: 2535 - Aantal punten: (0 stemmen)





Dit script geeft een reeks opeenvolgende data weer aan de hand van een uitgangsdatum. Dit kan zowel omhoog als omlaag zijn.

De uitkomst wordt in een array teruggegeven.

Let wel, dat dit script niet geschikt is voor periodes langer dan 30 dagen. Dan moeten er namelijk nog aanvullingen gedaan worden.

Code:
  1. <?php
  2. function showdatesequence($date, $aantaldagen, $soort)
  3. {
  4. //date is de uitgangsdatum, in te voeren in het formaat yyyy-mm-dd
  5. //aantaldagen is het aantal dagen dat er bij geteld of vanaf getrokken moet worden, maximaal 30 dagen.
  6. //soort heeft de waarde 'omhoog' of 'omlaag', afhankelijk van of er opgeteld of afgetrokken moet worden.
  7.  
  8. $dag = substr($date, 8, 2);
  9. $maand = substr($date, 5, 2);
  10. $jaar = substr($date, 0, 4);
  11.  
  12. if ($soort == 'omlaag')
  13. {
  14. for ($i=0; $i<=$aantaldagen-1; $i++)
  15. {
  16. if ($dag - $i > 0) // wanneer de maand niet verandert, alleen de dagen aftrekken.
  17. {
  18. $newdag = $dag - $i;
  19.  
  20. if (strlen($newdag) == 1)
  21. {
  22. $newdag = '0'.$newdag;
  23. }
  24.  
  25. $newmaand = $maand;
  26. $newjaar = $jaar;
  27. }
  28. else
  29. {
  30. if ($maand == 01)
  31. {
  32. $newmaand = 12;
  33. $newjaar = $jaar - 1;
  34. }
  35. else
  36. {
  37. $newmaand = $maand - 1;
  38. if (strlen($newmaand) == 1)
  39. {
  40. $newmaand = '0'.$newmaand;
  41. }
  42. $newjaar = $jaar;
  43. }
  44.  
  45. $dagenmaand = cal_days_in_month(CAL_GREGORIAN, $newmaand, $newjaar);
  46.  
  47. $newdag = $dagenmaand - ($i - $dag);
  48. if (strlen($newdag) == 1)
  49. {
  50. $newdag = '0'.$newdag;
  51. }
  52. }
  53. $datums[] = $newjaar.'-'.$newmaand.'-'.$newdag;
  54. }
  55. }
  56. elseif ($soort == 'omhoog')
  57. {
  58. for ($i=0; $i<=$aantaldagen-1; $i++)
  59. {
  60. if ($dag + $i < (cal_days_in_month(CAL_GREGORIAN, $maand, $jaar)+1)) // wanneer de maand niet verandert, alleen de dagen optellen.
  61. {
  62. $newdag = $dag + $i;
  63.  
  64. if (strlen($newdag) == 1)
  65. {
  66. $newdag = '0'.$newdag;
  67. }
  68.  
  69. $newmaand = $maand;
  70. $newjaar = $jaar;
  71. }
  72. else
  73. {
  74. if ($maand == 12)
  75. {
  76. $newmaand = 01;
  77. if (strlen($newmaand) == 1)
  78. {
  79. $newmaand = '0'.$newmaand;
  80. }
  81. $newjaar = $jaar + 1;
  82. }
  83. else
  84. {
  85. $newmaand = $maand + 1;
  86. if (strlen($newmaand) == 1)
  87. {
  88. $newmaand = '0'.$newmaand;
  89. }
  90. $newjaar = $jaar;
  91. }
  92.  
  93. $dagenmaand = cal_days_in_month(CAL_GREGORIAN, $maand, $jaar);
  94.  
  95. $newdag = ($i + $dag) - $dagenmaand;
  96. if (strlen($newdag) == 1)
  97. {
  98. $newdag = '0'.$newdag;
  99. }
  100. }
  101. $datums[] = $newjaar.'-'.$newmaand.'-'.$newdag;
  102. }
  103. }
  104. return $datums;
  105. }
  106. ?>

Download code! Download code (.txt)

 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Geen reacties (0)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.025s