[php] eerste dag van het jaar

Pagina: 1
Acties:

Onderwerpen


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
ik ben een script aan het schrijven dat van een week en een jaar de data van die meegegeven week vindt.
Dat laatste moet me lukken als ik maar de datum van de eerste dag van het jaar kan opvragen.
Dit moet simpel zijn, maar het lukt me maar niet.
Iemand tips?

ik dacht iets van :
code:
1
echo date ("d-M-Y", getdate(yday="0"));

Acties:
  • 0 Henk 'm!

  • E-Vix
  • Registratie: Juni 2000
  • Laatst online: 19-09 14:42

E-Vix

Nu met sneeuw!

Ik kan me vergissen, maar is de eerste dag van het jaar niet altijd 1 januari?
01-01-[jaar]

Failed opening '/home/users/7942/signature.inc' for inclusion (include_path='.:') in /home/www/got/userstats.php on line 25


Acties:
  • 0 Henk 'm!

  • vriesdude
  • Registratie: Februari 2002
  • Laatst online: 19-09 19:14
E-Vix schreef op woensdag 11 januari 2006 @ 16:05:
Ik kan me vergissen, maar is de eerste dag van het jaar niet altijd 1 januari?
01-01-[jaar]
Zo simpel dacht ik ook, maar de vraag is volgens mij ook niet helemaal duidelijk volgens mij...

/dev/null


Acties:
  • 0 Henk 'm!

  • McKaamos
  • Registratie: Maart 2002
  • Niet online

McKaamos

Master of the Edit-button

ik denk dattie de naam van de eerste dag moet hebben dan... anders ishet sowieso 01-01-Year

Iemand een Tina2 in de aanbieding?


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
Hmm, ja, foute vraagstelling, ik bedoel de eerste maandag van het jaar.
ik wil nl als ik week 5 meegeef en jaar 2006
weten welke data er vallen in die week vanaf maandag tm zondag.
Dan neem ik de datum van de eerste maandag van het jaar + (5 (week) * 7 (dagen in de week).
Dan heb ik de datum van de maandag van week en kan ik de rest ook wel vinden.

het gaat dus om de eerste maandag van het jaar te vinden.

Acties:
  • 0 Henk 'm!

  • yiko
  • Registratie: September 2003
  • Laatst online: 20-04 20:19
Ik vermoed dat hij bedoeld om de eerste dag van de eerste week van een gegeven jaar te berekenen.
Deze eerste week van het jaar begint dit jaar op 2 januari 2006.
Volgens ISO 8601 is de eerste week van het jaar, de eerste week waarvan de meeste dagen in dat jaar liggen. In de praktijk komt dit overeen met de eerste week waarin een donderdag zit (dit kan ook vanaf bv 29 december zijn trouwens)

Acties:
  • 0 Henk 'm!

Verwijderd

http://nl2.php.net/manual/en/ref.datetime.php#30468

op php.net voor eerste dag v/d week en weeknummer

[ Voor 118% gewijzigd door Verwijderd op 11-01-2006 16:26 ]


Acties:
  • 0 Henk 'm!

Verwijderd

Topicstarter
dit is m geworden voor de geinteresseerden:
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
35
36
37
38
39
40
41
42
<?php
$year="2006";
echo $week;
echo "<br>";
echo $year;
echo "<br>";

$eerstdagvanhetjaar = date ("D", mktime (0,0,0,1,1,$year));  

switch ($eerstdagvanhetjaar) 
    {
    case "Sun":
       echo "1 januari valt in $year op Zondag<br>";
       echo "De 1e maandag in $year is dus 2 januari";
       break;
    case "Mon":
       echo "1 januari valt in $year op Maandag<br>";
       echo "De 1e maandag in $year is dus 1 januari";   
       break;
    case "Tue":
       echo "1 januari valt in $year op Dinsdag<br>";
       echo "De 1e maandag in $year is dus 7 januari";   
       break;
    case "Wed":
       echo "1 januari valt in $year op Woensdag<br>";
       echo "De 1e maandag in $year is dus 6 januari"; 
       break;
    case "Thu":
       echo "1 januari valt in $year op Donderdag<br>";
       echo "De 1e maandag in $year is dus 5 januari";     
       break;    
    case "Fri":
       echo "1 januari valt in $year op Vrijdag<br>";
       echo "De 1e maandag in $year is dus 4 januari";     
       break;   
    case "Sat":
       echo "1 januari valt in $year op Zaterdag<br>";
       echo "De 1e maandag in $year is dus 3 januari";     
       break;                
    }

?>

Acties:
  • 0 Henk 'm!

Verwijderd

PHP:
1
2
3
4
5
6
7
8
9
10
11
$jaar = 2004;
$d = date("w", mktime(0,0,0,1,1,$jaar));
switch($d) {
    case 0: $x = "+1"; break;
    case 1: $x = "0"; break;
    default: $x = "+".(8-$d); break;
}

// result
$timestamp = strtotime($jaar."-01-01 ".$x." day");
echo date("d-m-Y", $timestamp);

Acties:
  • 0 Henk 'm!

  • Vaan Banaan
  • Registratie: Februari 2001
  • Niet online

Vaan Banaan

Heeft ook Apache ontdekt

Maar dan weet je nog steeds niet welke data bij welke week horen (week 1 kan dus eind december beginnen en in januari eindigen. Zie post van yiko)
En verder nog controleren of een weeknummer kan. Het ene jaar heeft 52 weeknummers, het andere weer 53

500 "The server made a boo boo"


Acties:
  • 0 Henk 'm!

  • NMe
  • Registratie: Februari 2004
  • Laatst online: 09-09 13:58

NMe

Quia Ego Sic Dico.

@hans1978: wat een ranzig lange code voor iets wat zo relatief simpel is. Je hoeft alleen maar een timestamp te maken met mktime, en vervolgens kun je vanalles doen met date() en strftime(). Die hele switch is overbodig als je die twee pagina's even doorkijkt (en dan met name die laatste). ;)

'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.


Acties:
  • 0 Henk 'm!

  • jan-marten
  • Registratie: September 2000
  • Laatst online: 20-09 15:31
De eerste week in Nederland (week 1) heeft altijd 4 dagen van de maand Januari.
Volgens mij was maandag de eerste dag van de week.
Valt 4 januari dan op een zondag dan valt 5 januari in week 2.
Valt 4 januari op een maandag dan is dat week 1.
format functie in VB

En idd yiko zou ook gelijk kunnen hebben.

[ Voor 6% gewijzigd door jan-marten op 12-01-2006 18:11 ]


Acties:
  • 0 Henk 'm!

  • T-MOB
  • Registratie: Maart 2001
  • Laatst online: 16:36
jan-marten schreef op donderdag 12 januari 2006 @ 18:10:
De eerste week in Nederland (week 1) heeft altijd [minimaal] 4 dagen van de maand Januari.
Dat is correct :). Logisch gevolg is dat 4 januari altijd in week 1 valt. Om de correcte datum te vinden bij het opgegeven weeknummer hoef je dan alleen het aantal dagen verschil tussen 4 januari en de opgegeven jaar-week-dag combinatie te weten (7*weeknummer + daggewenste week - dag 4 januari). Een implementatie van dat algorithme heb ik al vaker gepost. Zoeken op "weektotimestamp" en je vind de code :)
En idd yiko zou ook gelijk kunnen hebben.
Jullie zeggen hetzelfde, dus hebben jullie beiden gelijk ;)

Regeren is vooruitschuiven

Pagina: 1