dynamische datum in formulier
Het lukt mij niet om een code op te stellen waarbij voor de voorgaande jaren alle maanden te tonen (2006 vanaf juli) en voor het huidige jaar alleen de maanden tot nu toe. Kan dit wel met php?
Dit is de code die ik nu heb:
Code (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
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
<?php
require '../../php/db_connect.php';
$query = mysql_query("SELECT MAX(UNIX_TIMESTAMP(DateTime)) AS lastrow FROM weerdata");//laatste regel uit database ophalen in timestampformaat
$row = mysql_fetch_assoc($query);
if($row)
{
$lastrow = 3600*(floor($row['lastrow']/3600));//naar beneden afronden op hele uren
}
$startjaar = 2006;
$eindjaar = date("Y",$lastrow);//jaar in laatste regel database
echo '<select name=\"jaar\">';
for($y = $startjaar; $y <= $eindjaar; $y++)//formulier voor jaren van 2006 tot laatste jaar in database
{
echo "<option value=\"$y\">$y</option>";
}
echo '</select> jaar <select name=\"maand\">';
$startstamp = 1153864800; //timestamp voor 2006-07-26 0:00 uur = 1e regel database
$eindmaand = date("m",$lastrow);
if($y < $eindjaar) //als jaar niet laatste jaar van database is alle 12 maanden laten zien
{
for($m = 1; $m <= 12; $m++)
{
echo "<option value=\"$m\">$m</option>";
}
}
else
{
for($m = 1; $m <= $eindmaand; $m++)//voor laatte jaar alleen de maanden tonen tot de huidge maand
{
echo "<option value=\"$m\">$m</option>";
}
}
echo '</select>maand';
?>
require '../../php/db_connect.php';
$query = mysql_query("SELECT MAX(UNIX_TIMESTAMP(DateTime)) AS lastrow FROM weerdata");//laatste regel uit database ophalen in timestampformaat
$row = mysql_fetch_assoc($query);
if($row)
{
$lastrow = 3600*(floor($row['lastrow']/3600));//naar beneden afronden op hele uren
}
$startjaar = 2006;
$eindjaar = date("Y",$lastrow);//jaar in laatste regel database
echo '<select name=\"jaar\">';
for($y = $startjaar; $y <= $eindjaar; $y++)//formulier voor jaren van 2006 tot laatste jaar in database
{
echo "<option value=\"$y\">$y</option>";
}
echo '</select> jaar <select name=\"maand\">';
$startstamp = 1153864800; //timestamp voor 2006-07-26 0:00 uur = 1e regel database
$eindmaand = date("m",$lastrow);
if($y < $eindjaar) //als jaar niet laatste jaar van database is alle 12 maanden laten zien
{
for($m = 1; $m <= 12; $m++)
{
echo "<option value=\"$m\">$m</option>";
}
}
else
{
for($m = 1; $m <= $eindmaand; $m++)//voor laatte jaar alleen de maanden tonen tot de huidge maand
{
echo "<option value=\"$m\">$m</option>";
}
}
echo '</select>maand';
?>
Ps. Yahoo heeft een heel aantal hele fraaie date-pickers, dan bestaat dit hele probleem niet meer. javascript is wel verplicht.
Pps. Vraag jezelf even af of je wel met timestamps wilt lopen rommelen, dat is zelden een goed plan.