week dagen
hier kunnen wij da gemakkelijk invoeren wie werkt en hoelaat.
Nou heb ik al een begin van zo'n systeem met inloggen en al.
Alleen stuit ik op een klein probleem.
Ik heb de pagina rooster.php
Hier wil ik dan voor de huidige gebruiker zijn week rooster laten zien.
Alleen heb ik geen idee hoe ik dan automatisch de goede week laat zien en dat hij ook weet dat het bijvoorbeeld de maandag 30-01-2012 is.
hier een link met een voorbeeld hoe het er uit moet zien in een tabel.
Ik ben dus benieuwd of iemand mij kan vertellen hoe ik een beginnetje kan maken met het uitrekenen van de datums. En dat ik dan laat zien voor de ingelogde gebruiker wat zijn rooster is.
Mijn database is als volgt:
`id` int(255) NOT NULL AUTO_INCREMENT,
`datum` date NOT NULL,
`werknemer` int(255) NOT NULL,
`begintijd` time NOT NULL,
`eindtijd` time NOT NULL,
`pauze` time NOT NULL,
UNIQUE KEY `id` (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
alvast bedankt!
Code (php)
1
2
3
4
5
6
7
8
9
10
2
3
4
5
6
7
8
9
10
$jaar = date(Y);
$week = date(w);
$maand = date(n);
$dag = date(N);
$dagnaam = array(1 => "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag", "zondag");
$maandnaam = array(1 => "Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December");
echo 'Jaar: '.$jaar.'<br/>';
echo 'Week: '.$week.'<br/>';
echo 'Maand: '.$maand.' oftewel '.$maandnaam[$maand].'<br/>';
echo 'Dag: '.$dag.'oftewel '.$dagnaam[$dag].'<br/>';
$week = date(w);
$maand = date(n);
$dag = date(N);
$dagnaam = array(1 => "maandag", "dinsdag", "woensdag", "donderdag", "vrijdag", "zaterdag", "zondag");
$maandnaam = array(1 => "Januari", "Februari", "Maart", "April", "Mei", "Juni", "Juli", "Augustus", "September", "Oktober", "November", "December");
echo 'Jaar: '.$jaar.'<br/>';
echo 'Week: '.$week.'<br/>';
echo 'Maand: '.$maand.' oftewel '.$maandnaam[$maand].'<br/>';
echo 'Dag: '.$dag.'oftewel '.$dagnaam[$dag].'<br/>';
Ik heb nu een begintje met kijken welke datum het dan is. Maar weet nog niet hoe ik dit dan in een tabel moet zetten dus dat ie vandaag vrijdag en dan ook de donderdag eentje eraftelt enzo.
Weet niet of jullie mij een opzetje kunnen geven?
Hierin kan je ook zien dat de functie mktime() erg belangrijk is om de datum te kunnen wijzigen.
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
37
38
39
40
41
42
43
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
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<body>
<table cellspacing="0" cellpadding="2">
<?php
// Create the timestamp for today/now
$timestamp = mktime(date("h"), date("i"), date("s"), date("m"), date("d"), date("Y") );
// Show today in a nice format
?><caption> Now: <?php echo date('l jS \of F Y h:i:s A', $timestamp); ?></caption><?php
// Loop through all months of a year
for($i=0;$i<= 12; $i++)
{
// Create a timestamp for the 1st day in each month
// $i changes the month each iteration
$timestamp = mktime(0, 0, 0, $i, 1, date("Y") );
// Show some formats
?>
<tr>
<td><?php echo $i; ?></td>
<td><?php echo date('U', $timestamp)?></td>
<td><?php echo date('l jS \of F Y h:i:s A', $timestamp); ?></td>
</tr>
<?php
}
?>
</table>
<hr />
<div>
Ref: <br />
<a href="http://nl3.php.net/manual/en/function.date.php">date() on php.net</a><br />
<a href="http://nl3.php.net/manual/en/function.mktime.php">mktime() on php.net</a><br />
</div>
</body>
</html>
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
<body>
<table cellspacing="0" cellpadding="2">
<?php
// Create the timestamp for today/now
$timestamp = mktime(date("h"), date("i"), date("s"), date("m"), date("d"), date("Y") );
// Show today in a nice format
?><caption> Now: <?php echo date('l jS \of F Y h:i:s A', $timestamp); ?></caption><?php
// Loop through all months of a year
for($i=0;$i<= 12; $i++)
{
// Create a timestamp for the 1st day in each month
// $i changes the month each iteration
$timestamp = mktime(0, 0, 0, $i, 1, date("Y") );
// Show some formats
?>
<tr>
<td><?php echo $i; ?></td>
<td><?php echo date('U', $timestamp)?></td>
<td><?php echo date('l jS \of F Y h:i:s A', $timestamp); ?></td>
</tr>
<?php
}
?>
</table>
<hr />
<div>
Ref: <br />
<a href="http://nl3.php.net/manual/en/function.date.php">date() on php.net</a><br />
<a href="http://nl3.php.net/manual/en/function.mktime.php">mktime() on php.net</a><br />
</div>
</body>
</html>
Voorbeeld
Gewijzigd op 27/01/2012 21:38:22 door - Jim -
Ik heb nu een functie
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
function totaaltijd($dag) {
$totaal = eindtijd($dag)-begintijd($dag)-pauzetijd($dag);
if ($totaal <= 0) {
return '-';
}
else {
return $totaal;
}
}
[/code}
alleen bij deze code gebeurd het volgende hij haalt de eindtijd - begintijd -pauzetijd alleen zonder pauze krijg ik bijvoorbeeld 3 (21:00:00-18:00:00) maar als ik pauzetijd erbij doe dan krijg ik nog steeds 3? watdoe ik fout. pauze tijd is dan (00:10:00)
edit: Volgens mij komt dit doordat het getal niet meer in TIME staat maar in een getal??
$totaal = eindtijd($dag)-begintijd($dag)-pauzetijd($dag);
if ($totaal <= 0) {
return '-';
}
else {
return $totaal;
}
}
[/code}
alleen bij deze code gebeurd het volgende hij haalt de eindtijd - begintijd -pauzetijd alleen zonder pauze krijg ik bijvoorbeeld 3 (21:00:00-18:00:00) maar als ik pauzetijd erbij doe dan krijg ik nog steeds 3? watdoe ik fout. pauze tijd is dan (00:10:00)
edit: Volgens mij komt dit doordat het getal niet meer in TIME staat maar in een getal??
Gewijzigd op 27/01/2012 22:12:09 door Nick de