Zeitangaben , Hilfe für Schulprojekt :-(

paulee

Erfahrenes Mitglied
Hallo!

Habe für an kommendes Schulprojekt einiges zum Tun. Nun stehe ich aber an. Ich will ein einen Stundenplan erzeugen, dieser ist von Stunde 1 bis Stunde 11 gekennzeichnet. Je nach Uhrzeit soll die richtige Stunde angezeigt werden.

Stunde 1: 07:45-08:35
Stunde 2: 08:35-09:25
Pause 09:25 - 09:35
Stunde 3: 09:35-10:25
....

Könnt ihr mir eventuell Helfen, habe folgendes Problem:
Habe probiert mit Zeitangaben in PHP zu arbeiten, leider habe ich es nicht geschafft, dies richtig zu machen.

Ein Beispiel:
Es ist 09:02 Uhr , und nun die 2. Stunde, wie funktioniert jenes in PHP, dass immer von einem bestimmten Zeitpunkt, zum anderen die richtige Stunde angezeigt wird. Dabei will ich, dass die Zeit von der Serveruhr genommen wird.

Bsp.:
07:58 -> 1. Stunde
08:24 -> 1. Stunde
10:20 -> 3. Stunde
....


Habe schon mit timestamps herumgespielt, leider aber keine Lösung gefunden, habt ihr eine Lösung für mich? :confused:
 
Hallo,

mein Vorschlag:
PHP:
<?php

$stunden = array(
	'Stunde 1' => array('beginn' => '07:45', 'ende' => '08:35'),
	'Stunde 2' => array('beginn' => '08:35', 'ende' => '09:25'),
	'Pause'    => array('beginn' => '09:25', 'ende' => '09:35'),
	'Stunde 3' => array('beginn' => '09:35', 'ende' => '10:25'),
	/* usw. */
);

$jetzt = date('H:i'); // aktuelle Zeit im Format hh:mm

$aktuelle_stunde = '';

// Durchlaufe alle Stunden
foreach ($stunden as $name => $zeiten) {
	if ($jetzt >= $zeiten['beginn'] && $jetzt < $zeiten['ende']) {
		// Wir befinden uns in dieser Stunde!
		// Name der aktuellen Stunde speichern:
		$aktuelle_stunde = $name;
		// Schleife verlassen
		break;
	}
}

if (empty($aktuelle_stunde)) {
	echo 'Momentan findet keine Stunde statt!';
} else {
	echo 'Aktuelle Stunde: ' . $aktuelle_stunde;
}
Wobei auch hier sicherlich viele Wege nach Rom führen :)

Grüße,
Matthias
 
Wäre doch noch einmal schön zu sehen, dass Themen die als beantwortet gelten,
auch als erledigt gekennzeichnet werden. Siehe links unten. Damit bist nicht nur Du gemeint.
 
Eine Frage hätte ich noch.
Und zwar ist in diesem Projekt ein Script integriert, in welchem man zukünftig fehlende Schüler eintragen können soll. In Schulen gibt es aber in Klassen oft verschiedene Gruppen... 1. Stunde ... eine Gruppe hat Mathe und die andere Deutsch usw. oder es gibt in einer Stunde mehrere Gruppen, 3 oder 4.

Ich habe erst einmal eine Table in mySQL erstellt, welche so aussieht:

PHP:
CREATE TABLE `stundenplan0` (
  `id` int(44) NOT NULL auto_increment,
  `klasse` varchar(250) NOT NULL default '',
  `geteilt` enum('0','1') NOT NULL default '0',
  `klassenteil` varchar(255) NOT NULL default '',
  `stunde` varchar(250) NOT NULL default '',
  `tag` varchar(250) NOT NULL default '',
  `fach` varchar(250) NOT NULL default '',
  `raum` varchar(255) NOT NULL default '',
  PRIMARY KEY  (`id`)
)

Der Code, mit welchem man die Übersicht erstellt sieht folgendermaßen aus derzeit:

PHP:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
<title>Unbenanntes Dokument</title>
</head>

<body>
<table width="800" border="0" cellpadding="0" cellspacing="0">
  <tr>
    <td width="49"><div align="center">Stunde</div></td>
    <td width="82"><div align="center">Gegenstand</div></td>
    <td width="578"><div align="center">Abwesende Sch&uuml;ler </div></td>
    <td width="54"><div align="center">Zahl </div></td>
    <td width="37"><div align="center"></div></td>
  </tr>

<?
	$host = "";
	$user = "";
	$pass = "";
	$db = "";
	$klasse = "";
	$tag		=	$_GET['tag'];
	
	mysql_connect($host,$user,$pass) or die (mysql_error()); 
	mysql_select_db($db) or die (mysql_error());
	
	$stunden	=	mysql_num_rows(mysql_query("SELECT * FROM `stundenplan0` WHERE klasse='$klasse' AND tag='$tag'"));

	for($i ; $i < $stunden ; $i++) {

		$count++;
	
			echo "
			<tr>
			<td>$count</td>
			<td>";
			
			$result	   		  = mysql_query("SELECT * FROM `stundenplan0` WHERE klasse = '$klasse' AND tag = '$tag' AND stunde='$count'");
			$faecher  		  = mysql_query("SELECT * FROM `faecher` WHERE klasse = '$klasse'");
			list($array[1])  = mysql_fetch_array(mysql_query("SELECT fach FROM `stundenplan0` WHERE klasse = '$klasse' AND tag = '$tag' AND stunde='$count'"));
			

// ANFANG - XXXXXXXX FÄCHER- DropDown Menü  XXXXXXXX


			// SELECT eröffnen
			echo "	<select name='fach".$count."'>";
			
			
			// While für das Laden des Faches in das "select"- Label
			while($option = mysql_fetch_assoc($result))
			{
				$sel = '';
				if($option['stunde'] == $array[1])
				{
					 $sel = ' selected="selected"';
				}
				echo "
								<option value='".$option['fach']."'".$sel.">".$option['fach']."</option>";
				};
			
			
			// Fächer für die Schulstufe bzw. Klasse laden
			while($opt_fach = mysql_fetch_assoc($faecher))
			{
			echo "
							  	<option value='".$opt_fach['kuerzel']."'".$sel.">".$opt_fach['Fachname']."</option>";
			};
					
					// SELECT schließen
					echo "</select>";
					
// ENDE - XXXXXXXX FÄCHER- DropDown Menü  XXXXXXXX
	
			// Table- Bereich für das eintragen der Fehlstunden. 
			echo"	
						</td>
						<td>&nbsp;&nbsp;&nbsp;&raquo;&nbsp;<a href='fehlstunden.php?stunde=$count&fach=".$array[1]."'>eintragen</a></td>";
						
			echo"
						<td><input type='text' name='textfield' style='width: 20px;' disabled></td>
						<td height='30'>&nbsp;</td>
					  	</tr>";
	
	}
?>
</table>
</body>
</html>

Wahrscheinlich weiß keiner wie ich es meine. Deshalb habe ich 2 Grafiken angehängt. Die eine mit dem Namen "sosiehtesjetztaus.gif" zeigt die Tabelle (html) wie es jetzt aussihet, wenn ich das Script starte.Mit dieser Version kann ich Stunden leider nicht in Gruppen unterteilen (wie in der 2. Grafik), ohne dass die Stundenanzahl erhöht wird etc.

Die 2. Grafik mit dem Namen "sosollesaussehen.gif" zeigt wie die Tabelle aussehen sollte.


Hat von euch einer einen Lösungsvorschlag? Ich will nicht um einen code betteln oa. sondern würd nur gerne wissen wie ich jenes Problem leicht (^^) lösen könnte bzw. ob sowas überhaupt möglich ist.
 

Anhänge

  • 25471attachment.gif
    25471attachment.gif
    6 KB · Aufrufe: 9
  • 25472attachment.gif
    25472attachment.gif
    8,1 KB · Aufrufe: 10
Zurück