[php] Datum achterhalen

Pagina: 1
Acties:
  • 55 views sinds 30-01-2008

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23-08 22:21

BierPul

2 koffie graag

Topicstarter
Ik probeer via een scripje de eerst komende zondag uit te rekenen vanaf de dag dat je kijkt. Dat gaat op zich prima, het is me nu gelukt om het dagnummer (op jaar basis) te achterhalen .

Maar nu wil ik daar weer een datum van vormen en daar blijf ik steken :(

PHP:
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
43
44
45
46
47
48
49
50
51
52
53
54
55
56
$vandaag = time();
$dit_jaar = date("Y", $vandaag);
$week_dag_nummer = date("w", $vandaag);
$dag_van_het_jaar_nummer = date("z", $vandaag);

/*berekenen eerst volgende zondag (dagen vanf nu tot aan zondag*/
switch($week_dag_nummer){
    case 0:
        /*Het is zondag dus + niks*/
        $dag = $dag_van_het_jaar_nummer;
    break;
    
    case 1:
        $dag = $dag_van_het_jaar_nummer+6;
    break;
    
    case 2:
        $dag = $dag_van_het_jaar_nummer+5;
    break;
    
    case 3:
        $dag = $dag_van_het_jaar_nummer+4;
    break;
    
    case 4:
        $dag = $dag_van_het_jaar_nummer+3;
    break;
    
    case 5:
        $dag = $dag_van_het_jaar_nummer+2;
    break;
    
    case 6:
        $dag = $dag_van_het_jaar_nummer+1;
    break;
}

if($dag < $dag_van_het_jaar_nummer) {
    /*nieuw jaar, max 1 jaar vooruit te plannen*/
    $dit_jaar = $dit_jaar + 1;
}

echo($dit_jaar);

/*nu wil ik dus de echte datum van dag nummer $dag van jaar $dit_jaar, die ik dan hieronder weer kan inzetten :)*/


$aantalWeken = 12; /*aantal maal dat we vooruit willen plannen dus alleen zondagen*/


for( $week = 1; $week <= $aantalWeken; $week++ ) {
    $datum = mktime( 0, 0, 604800, $maand, $dag, $jaar );
    $string = date( "m-d-Y",$datum ); 
    echo "<li>" .$string. "</li>"; /*ff de data als test echoen maar komt in select*/ 
    list( $maand, $dag, $jaar ) = split( "-", $string ); 
}


Vanaf regel 45 loop ik dus vast :(

Iemand een id :?

Ja man


  • esf
  • Registratie: Juni 2002
  • Laatst online: 11-03 14:06

esf

PHP:
1
2
3
4
5
6
7
8
<?php
$timestamp = strtotime ("next Sunday");
$date = getdate($timestamp);
$month = $date['month'];
$mday = $date['mday'];
$year = $date['year'];
echo "$month $mday, $year";
?>


Meer info op http://www.php.net/manual/en/function.strtotime.php

Suc6 ermee ;)

The hardest thing in the world to understand is the income tax. - Albert Einstein


Verwijderd

Ondanks de reply hierboven, vond ik het zelf wel leuk om een functie ervoor te fixen. En dat is me wel aardig gelukt, al zeg ik het zelf ;)

De code:

PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
function volgende_zondag($weken = 0)
{
    $vandaag    = mktime(0, 0, 0, date('m'), date('d'), date('Y')); 
    $nieuw      = ($vandaag + ((86400 * 7) * $weken)); 
    $timestamp  = $nieuw + (86400 * (date('w', $vandaag) - 1));
    
    $nr         = date('d', $timestamp);

    $dagen      = array('Zondag', 'Maandag', 'Dinsdag', 'Woensdag', 'Donderdag', 'Vrijdag', 'Zaterdag');

    $dag        = date('w', $timestamp);
    $dag        = $dagen[$dag];

    $maanden    = array('', 'januari', 'februari', 'maart', 'april', 'mei', 'juni', 'juli', 'augustus', 'september', 'oktober', 'november', 'december');

    $maand      = date('n', $timestamp);
    $maand      = $maanden[$maand];
    $jaar       = date('Y', $timestamp);

    return ucfirst($dag . ', ' . $nr . ' ' . $maand . ' ' . $jaar);
}


Voor de volgende zondag echo je simpel alleen de functie aanroep. Maar wil je de daarop volgende zondag dan zet je er een '1' in:

PHP:
1
2
echo volgende_zondag(); // = komende zondag
echo volgende_zondag(1); // = daaropvolgende zondag


Succes ermee :P

[ Voor 104% gewijzigd door Verwijderd op 13-02-2003 16:34 . Reden: ... ]


  • Sn3akz
  • Registratie: November 2000
  • Laatst online: 31-01 20:37
Ik vind de strtotime methode mooier... ;)

[ Voor 78% gewijzigd door Sn3akz op 13-02-2003 16:34 ]


Verwijderd

Sn3akz schreef op 13 February 2003 @ 16:33:
[...]


Ik vind de strtotime methode mooier... ;)
Heb 'em ff vernieuwd :P

Maar idd die functie is handiger, maar dan had ik 'em wel eerst moeten kennen ;)

  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23-08 22:21

BierPul

2 koffie graag

Topicstarter
PHP:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
$time = time();
/*Eerst aankomende zondag vaststellen*/
$sunday    = $time + (86400 * (date('w', $time) - 1)); 

$dag = date("d", $sunday);
$maand = date("m", $sunday);
$jaar = date("Y", $sunday);

$aantalWeken = 12; /*aantal maal dat we vooruit willen plannen dus alleen zondagen*/

for( $week = 1; $week <= $aantalWeken; $week++ ) {
    $datum = mktime( 0, 0, 604800, $maand, $dag, $jaar );
    $string = date( "m-d-Y",$datum ); 
    echo "<li>" .$string. "</li>"; /*ff de data als test echoen maar komt in select*/ 
    list( $maand, $dag, $jaar ) = split( "-", $string ); 
}


Ik ga me ff verdiepen in strtotime maar de klus heeft beetje haast dus this will do for now B)

Ja man


  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

maar dan had ik 'em wel eerst moeten kennen
Moet je de manual maar lezen >:) ;)

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz


  • BierPul
  • Registratie: Juni 2001
  • Laatst online: 23-08 22:21

BierPul

2 koffie graag

Topicstarter
:P

Ja man


Verwijderd

drm schreef op 13 februari 2003 @ 16:41:
[...]
Moet je de manual maar lezen >:) ;)
Hijs te groot :'( ;)

  • Sn3akz
  • Registratie: November 2000
  • Laatst online: 31-01 20:37
True... maar ik neem aan dat voor dat je aan zo'n project gaat beginnen waar datum een belangerijke rol speelt eerst even in de manual duikt om te kijken wat er op dat gebied allemaal is geschreven

Verwijderd

Project?

Maar natuurlijk gebruik ik vaak zat de manual, want hijs gewoon super handig en gelukkig juist ook groot. Wat dus betekent dat er lekker veel functies zijn ingebouwd in PHP.

Alleen doordat ie zo groot is ga je niet alles in één keer lezen, en gebruik ik het enkel als ik het nodig heb voor een 'project' oid. Maar deze functie was ik dus nog niet tegengekomen, omdat ik deze ook nog niet nodig heb gehad :)

  • rockfly
  • Registratie: Februari 2003
  • Laatst online: 08-04 09:12
met een simpele split() opdracht krijg het er heel makkelijk uit

  • drm
  • Registratie: Februari 2001
  • Laatst online: 09-06-2025

drm

f0pc0dert

juist ja. Dit leidt naar 't niets.

Music is the pleasure the human mind experiences from counting without being aware that it is counting
~ Gottfried Leibniz

Pagina: 1

Dit topic is gesloten.