[php] Dagen in een bepaald weeknummer

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Ik ben een beetje aan t klooien met een script, en nu loop ik tegen een ding aan:

Ik moet een weeknummer kunnen selecteren, en dan krijg ik de dagen (timestamp, datum, whatever) terug (dus 7 dagen).

Hoe krijg ik dit voor elkaar :)
PHP:
1
<?date("D",$timestamp);?>

Heb ik al geprobeerd, maar dan krijg ik alleen het weeknummer van die timestamp. Ik moet juist de timestamps van de dagen die in die bepaalde week zit :)

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
mktime perhaps?

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op maandag 22 juli 2002 00:10 schreef ACM het volgende:
mktime perhaps?
Ik moet eerst de timestamps van de dagen in die bepaalde week hebben: dan kan ik ook wel met mktime() en date() de datum tevoorschijn toveren :P

Acties:
  • 0 Henk 'm!

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

(jarig!)
Op maandag 22 juli 2002 00:21 schreef CowMike het volgende:

[..]

Ik moet eerst de timestamps van de dagen in die bepaalde week hebben: dan kan ik ook wel met mktime() en date() de datum tevoorschijn toveren :P
Nou, das toch niet zo moeilijk?
A.d.h.v het weeknummer kan je een timestamp achterhalen van die week, dat is gelijk die van de eerste dag van die week.
84600 seconden bij optellen (3600*24) en je hebt de volgende dag...

Acties:
  • 0 Henk 'm!

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 21:18

crisp

Devver

Pixelated

Op maandag 22 juli 2002 00:41 schreef ACM het volgende:

[..]

Nou, das toch niet zo moeilijk?
A.d.h.v het weeknummer kan je een timestamp achterhalen van die week, dat is gelijk die van de eerste dag van die week.
84600 seconden bij optellen (3600*24) en je hebt de volgende dag...
Wat ook wel handig is om van tevoren te weten is welke methode voor weeknummers je wilt hanteren (Gregoriaans, anders), en op welke dag de week begint (zondag of maandag).
Ik weet niet waar PHP zijn weeknummers op baseerd, maar in Nederland wordt meestal de Gregoriaanse methode toegepast die afwijkt van de 'Amerikaanse' methode (weet de naam van die methode niet).
De Gregoriaanse week 1 begint met de week waarvan de donderdag in januari valt, de 'Amerikaanse' week 1 begint met de week waarin 1 januari valt.

Intentionally left blank


Acties:
  • 0 Henk 'm!

  • [ash]
  • Registratie: Februari 2002
  • Laatst online: 05-04 18:06

[ash]

Cookies :9

De volgende functie heb ik zelf geschreven om van een gegeven week nummer, de 1e en laatste dag van de week te achterhalen.

Hoop dat je er wat aan hebt.

Succes.
code:
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
function GetFirstAndLastDayOfWeek($week, $year) 
{ 
define ("LenOfWeek", "604800"); 
define ("LenOfDay", "86400"); 

/*Check if 1st of January is in week 1 or the last week of last year. (Official ISO: 
  If the 1st of January is a Monday, Tuesday, Wednesday or Thursday, then that week will 
  be week 1 of that year. Else this will be the last week of the year before.*/ 

$FirstDayOfYear=date('w',mktime(0,0,0,1,1,$year));  
If ($FirstDayOfYear > 4) 
{  
 /*January the 1st is in the last week of the year before.*/ 
 $FirstWeek = 0;  
} 
else 
{ 
 /*January the 1st is the first week of this year.*/ 
 $FirstWeek = 1; 
} 

/*Get timestamp of the 1st day from the week of January the First.*/ 
$FirstDayOfWeek=mktime(0,0,0,1,1,$year)-($FirstDayOfYear-1)*LenOfDay; 

/*Get the 1st and last day of the week. Use these to return the dates as strings.
$FirstDay = date('D, d M Y',($FirstDayOfWeek +($week-$FirstWeek)*LenOfWeek));
$LastDay = date('D, d M Y',($FirstDayOfWeek + ($week-$FirstWeek)*LenOfWeek+6*LenOfDay)); */
/*Use these to return UNIX timestamps*/ 
$FirstDay = $FirstDayOfWeek +($week-$FirstWeek) * LenOfWeek; 
$LastDay = $FirstDayOfWeek + ($week-$FirstWeek) * LenOfWeek + (6 * LenOfDay); 

return array($FirstDay, $LastDay);

}

edit:

Typo ;)

Acties:
  • 0 Henk 'm!

Verwijderd

Op maandag 22 juli 2002 08:28 schreef crisp het volgende:

[..]

Wat ook wel handig is om van tevoren te weten is welke methode voor weeknummers je wilt hanteren (Gregoriaans, anders), en op welke dag de week begint (zondag of maandag).
Ik weet niet waar PHP zijn weeknummers op baseerd, maar in Nederland wordt meestal de Gregoriaanse methode toegepast die afwijkt van de 'Amerikaanse' methode (weet de naam van die methode niet).
De Gregoriaanse week 1 begint met de week waarvan de donderdag in januari valt, de 'Amerikaanse' week 1 begint met de week waarin 1 januari valt.
alles over datums kun je [url="http://www.tondering.dk/claus/calendar.html"] hier [/url] vinden.

Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Op maandag 22 juli 2002 09:10 schreef [ash] het volgende:
De volgende functie heb ik zelf geschreven om van een gegeven week nummer, de 1e en laatste dag van de week te achterhalen.

Hoop dat je er wat aan hebt.

Succes.
code:
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
function GetFirstAndLastDayOfWeek($week, $year) 
{ 
define ("LenOfWeek", "604800"); 
define ("LenOfDay", "86400"); 

/*Check if 1st of January is in week 1 or the last week of last year. (Official ISO: 
  If the 1st of January is a Monday, Tuesday, Wednesday or Thursday, then that week will 
  be week 1 of that year. Else this will be the last week of the year before.*/ 

$FirstDayOfYear=date('w',mktime(0,0,0,1,1,$year));  
If ($FirstDayOfYear > 4) 
{  
 /*January the 1st is in the last week of the year before.*/ 
 $FirstWeek = 0;  
} 
else 
{ 
 /*January the 1st is the first week of this year.*/ 
 $FirstWeek = 1; 
} 

/*Get timestamp of the 1st day from the week of January the First.*/ 
$FirstDayOfWeek=mktime(0,0,0,1,1,$year)-($FirstDayOfYear-1)*LenOfDay; 

/*Get the 1st and last day of the week. Use these to return the dates as strings.
$FirstDay = date('D, d M Y',($FirstDayOfWeek +($week-$FirstWeek)*LenOfWeek));
$LastDay = date('D, d M Y',($FirstDayOfWeek + ($week-$FirstWeek)*LenOfWeek+6*LenOfDay)); */
/*Use these to return UNIX timestamps*/ 
$FirstDay = $FirstDayOfWeek +($week-$FirstWeek) * LenOfWeek; 
$LastDay = $FirstDayOfWeek + ($week-$FirstWeek) * LenOfWeek + (6 * LenOfDay); 

return array($FirstDay, $LastDay);

}

edit:

Typo ;)
W00t! Bedankt man! Hij werkt! :D
Pagina: 1