login  Naam:   Wachtwoord: 
Registreer je!
 Scripts:

Scripts > PHP > Handige scripts > Vind de eerste en laatste dag van een week

Vind de eerste en laatste dag van een week

Auteur: waltervos - 26 december 2007 - 12:54 - Gekeurd door: Stijn - Hits: 4877 - Aantal punten: (0 stemmen)



Voor een applicatie om uren te registreren (voor mijn werk) had ik een functie nodig die wanneer je 'm een datum voert, uitrekent wat de eerste en laatste van de betreffende week zijn. De uitvoer is in de vorm van een UNIX timestamp. Het kan maar zo zijn dat ik enorme omwegen heb genomen om op dit resultaat uit te komen, maar ik programmeer dan ook nog niet zo heel lang.

Meer informatie over de gebruikte PHP functies vind je hier:
www.php.net/date
www.php.net/strtotime
www.php.net/manual/nl/language.operators.comparison.php#language.operators.comparison.ternary

Code:
  1. <?php
  2. // weekvantot() bepaalt de eerste en laatste dag van de week waar
  3. // de gegeven datum in valt.
  4. function weekvantot($date) {
  5.  
  6. // Reken de UNIX timestamp van de datum uit en tel er 2 uur bij
  7. // op. Om problemen met zomer/wintertijd te voorkomen.
  8. $timestamp = strtotime($date) + 7200;
  9. $datetime = date('w' , $timestamp);
  10.  
  11. // Hier bekijken we hoeveel dagen we van de datum af moeten trekken
  12. // om de eerste dag van de week te vinden en hoeveel we er bij op
  13. // moeten tellen om de laatste dag van de week te vinden.
  14. $startoffset = ($datetime != 0) ? $datetime - 1 : 6;
  15. $endoffset = ($datetime != 0) ? 7-$datetime : 0;
  16.  
  17. // Hier berekenen we de timestamp van de eerste en laatste dag
  18. // van de week, en zoeken we het weeknummer op.
  19. $weekstart = $timestamp - ($startoffset * 86400);
  20. $weekend = $timestamp + ($endoffset * 86400);
  21. $weeknumber = date("W", $timestamp);
  22. return array("start" => $weekstart, "end" => $weekend, "number" => $weeknumber);
  23. }
  24. ?>
Download code! Download code (.txt)

Download dit script! Bekijk een voorbeeld van dit script!
 Stemmen
Niet ingelogd.

 Reacties
Post een reactie
Lees de reacties (2)
© 2002-2024 Sitemasters.be - Regels - Laadtijd: 0.021s