Vind de eerste en laatste dag van een week
Auteur: waltervos - 26 december 2007 - 12:54 - Gekeurd door: Stijn - Hits: 4890 - 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: |
<?php
// weekvantot() bepaalt de eerste en laatste dag van de week waar
// de gegeven datum in valt.
function weekvantot($date) {
// Reken de UNIX timestamp van de datum uit en tel er 2 uur bij
// op. Om problemen met zomer/wintertijd te voorkomen.
$timestamp = strtotime($date) + 7200;
$datetime = date('w' , $timestamp);
// Hier bekijken we hoeveel dagen we van de datum af moeten trekken
// om de eerste dag van de week te vinden en hoeveel we er bij op
// moeten tellen om de laatste dag van de week te vinden.
$startoffset = ($datetime != 0) ? $datetime - 1 : 6;
$endoffset = ($datetime != 0) ? 7-$datetime : 0;
// Hier berekenen we de timestamp van de eerste en laatste dag
// van de week, en zoeken we het weeknummer op.
$weekstart = $timestamp - ($startoffset * 86400);
$weekend = $timestamp + ($endoffset * 86400);
$weeknumber = date("W", $timestamp);
return array("start" => $weekstart, "end" => $weekend, "number" => $weeknumber);
}
?>
<?php // weekvantot() bepaalt de eerste en laatste dag van de week waar // de gegeven datum in valt. function weekvantot($date) { // Reken de UNIX timestamp van de datum uit en tel er 2 uur bij // op. Om problemen met zomer/wintertijd te voorkomen. $datetime = date('w' , $timestamp); // Hier bekijken we hoeveel dagen we van de datum af moeten trekken // om de eerste dag van de week te vinden en hoeveel we er bij op // moeten tellen om de laatste dag van de week te vinden. $startoffset = ($datetime != 0) ? $datetime - 1 : 6; $endoffset = ($datetime != 0) ? 7-$datetime : 0; // Hier berekenen we de timestamp van de eerste en laatste dag // van de week, en zoeken we het weeknummer op. $weekstart = $timestamp - ($startoffset * 86400); $weekend = $timestamp + ($endoffset * 86400); $weeknumber = date("W", $timestamp); return array("start" => $weekstart, "end" => $weekend, "number" => $weeknumber); } ?>
Download code (.txt)
|
|
|
Stemmen |
Niet ingelogd. |
|