Alleen de eerste zondagen van de maand
Ik wil alleen de eerste zondag van de maand, en dan 12 maanden laten zien in een dropbox.
Na wat experimenteren, dacht ik ten minste 1 zondag in een output te laten zien.
Helaas, nu ben ik het spoor helemaal bijster.
Wie kan mij verder helpen?
Ik ben niet PHP technisch, behandel mij aub als een beginner.
Alvast bedankt.
Bestandsnaam : epa2.php
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
2
3
4
5
6
7
8
9
10
11
12
<?php
ini_set('display_errors',1);
error_reporting(E_ALL);
//Create array with sundays only
$zon = date('d m Y');
$tsFirst = strtotime($zon.'next sunday');
?>
ini_set('display_errors',1);
error_reporting(E_ALL);
//Create array with sundays only
$zon = date('d m Y');
$tsFirst = strtotime($zon.'next sunday');
?>
In de html staat het volgende.
<tr>
<td style="width: 200px; height: 30px;"><label for="inv_4">Datum</label></td>
<td style="height: 30px"><strong>:</strong><span style="color:red">*</span></td>
<td style="width: 243px; height: 30px;"><input type="text" id="inv_4" name="datum" size="4" style="width:230px;" value=""/></td>
</tr>
http://www.webmastercity.nl/forum/viewtopic.php?f=35&t=38059
Toevoeging op 11/03/2012 13:16:55:
Kort samengevat (mocht je niet kunnen bekijken ivm inloggen):
Hier gaan we werken met data, als in het meervoud van datum.
Omdat data nogal verwarrend kan zijn, gebruik ik het (foutieve) datums.
Vooraf kan het handig zijn om alle dagen in een tabel in je database op te nemen.
Een sql-dump met alle datums tussen 1-1-1970 en 31-12-2070 kan je hier downloaden.
Nu wel al die gegevens hebben gaan we er even mee spelen.
Let wel dat ik steeds in het jaar 2009 blijf spelen, maar dat hoeft natuurlijk niet.
Alle datums van zondagen selecteren
Code (php)
1
2
3
4
5
2
3
4
5
SELECT datum
FROM alle_data
WHERE YEAR(datum) = '2009'
AND DAYOFWEEK(datum) = 1
ORDER BY datum ASC
FROM alle_data
WHERE YEAR(datum) = '2009'
AND DAYOFWEEK(datum) = 1
ORDER BY datum ASC
Alle maandagen selecteren met weeknummer
Code (php)
1
2
3
4
5
2
3
4
5
SELECT DAYNAME( datum ) AS naam, datum, WEEK( datum ) AS weeknummer
FROM alle_data
WHERE YEAR( datum ) = '2009'
AND DAYOFWEEK( datum ) =2
ORDER BY datum ASC
FROM alle_data
WHERE YEAR( datum ) = '2009'
AND DAYOFWEEK( datum ) =2
ORDER BY datum ASC
Alle dagen en datums van de eerste dag van een maand
Code (php)
1
2
3
4
5
2
3
4
5
SELECT DAYNAME(datum) AS naam, datum
FROM alle_data
WHERE YEAR(datum) = '2009'
AND DAYOFMONTH(datum) = 1
ORDER BY datum ASC
FROM alle_data
WHERE YEAR(datum) = '2009'
AND DAYOFMONTH(datum) = 1
ORDER BY datum ASC
Aantal dagen per maand
Code (php)
1
2
3
4
5
2
3
4
5
SELECT MONTHNAME(datum) AS maand, COUNT(datum) AS aantal_dagen
FROM alle_data
WHERE YEAR(datum) = '2009'
GROUP BY MONTH(datum)
ORDER BY datum ASC
FROM alle_data
WHERE YEAR(datum) = '2009'
GROUP BY MONTH(datum)
ORDER BY datum ASC
Aantal dagen per maand
Code (php)
1
2
3
4
5
2
3
4
5
SELECT MONTHNAME(datum) AS maand, COUNT(datum) AS aantal_dagen
FROM alle_data
WHERE YEAR(datum) = '2009'
GROUP BY MONTH(datum)
ORDER BY datum ASC
FROM alle_data
WHERE YEAR(datum) = '2009'
GROUP BY MONTH(datum)
ORDER BY datum ASC
Alle werkdagen van een jaar/maand
Code (php)
1
2
3
4
5
6
2
3
4
5
6
SELECT datum, DAYNAME(datum)
FROM alle_data
WHERE YEAR( datum ) = '2009'
AND MONTH( datum ) = '3'
AND DAYOFWEEK( datum ) BETWEEN 2 AND 6
ORDER BY datum ASC
FROM alle_data
WHERE YEAR( datum ) = '2009'
AND MONTH( datum ) = '3'
AND DAYOFWEEK( datum ) BETWEEN 2 AND 6
ORDER BY datum ASC
Je ziet dat de mogelijkheden eigenlijk eindeloos zijn.
In veel script-request zie ik dat ze een kalendertje willen maken.
Met daarbij het weeknummer, dagen etc.
Nu moet dat goed mogelijk zijn.
Voor voldoende leesvoer en alle functies: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html
Van harte succes toegewenst.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
2
3
4
5
6
7
8
9
10
11
12
13
14
Gewijzigd op 12/03/2012 10:20:15 door Ger van Steenderen
Betreft de PHP code, ik gebruik phpdesigner 7.2
en die geeft een fout melding op de volgende regel.
Hij zegt dan "syntax error unexpected ''"
moet zijn:
Mijn excuus -ik kan maar beter van de port afblijven ;-)-
Toevoeging op 12/03/2012 10:21:05:
Ik was ook nog een ; vergeten op regel 12 :-(
Ger van Steenderen op 11/03/2012 17:37:14:
Als ik het goed begrijp ga je dus in MySQL een tabel maken met alle datums er in en daarop query-en. Lijkt mij niet wat de TS wilt en daarnaast kan het gewoon in puur php:
Klopt. Dan is jouw PHP-oplossing zeker beter!
Maar mocht hij ooit nog meer willen, (en diverse,ingewikkelder) om er later toch nog iets uit de database te halen, dan is mijn optie wellicht beter.
JOIN LEFT op deze tabel kan wonderen doen.
Quote:
Wellicht niet de meest gebalanceerde oplossing
Quote:
Klopt :-)
Gewijzigd op 12/03/2012 17:39:27 door Ger van Steenderen
Toevoeging op 20/03/2012 05:46:32:
Oke ik heb dus nu het volgende, incl correcties, maar krijg nog steeds dezelfde fout melding.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
2
3
4
5
6
7
8
9
10
11
12
13
Heb ook een extra } bij gezet omdat de functie niet werd afgesloten
Toevoeging op 20/03/2012 05:48:45:
Oh, ik heb het verkeerde haakje gevonden.
Ga dit eerst even testen.
Word vervolgt.
Gewijzigd op 20/03/2012 05:47:31 door Ben Janssen