Hallo Freunde,
ich habe letztes Jahr eine Programmierung mit PHP durchgeführt, womit Mitarbeiter Ihre Arbeitszeiten easy eintragen können. Diese sind mit einer SQL Datenbank verbunden.
Seit Anfang 2024 wird das Datum komplett falsch angezeigt. Ich glaube das liegt an den KWs. Ihr könnt Euch selber ein Bild machen, indem Ihr auf folgenden Link geht: PMT Agency - Dienstplan (kesug.com)
Dort kann man entweder auf "Heute", "Vorherige Woche" oder "Nächste Woche" klicken. Klickt bitte auf eins von den drauf und schaut selber.
Kann mir dort jemand meinen PHP-Code aktualisieren?
Habe alles versucht...
ich habe letztes Jahr eine Programmierung mit PHP durchgeführt, womit Mitarbeiter Ihre Arbeitszeiten easy eintragen können. Diese sind mit einer SQL Datenbank verbunden.
Seit Anfang 2024 wird das Datum komplett falsch angezeigt. Ich glaube das liegt an den KWs. Ihr könnt Euch selber ein Bild machen, indem Ihr auf folgenden Link geht: PMT Agency - Dienstplan (kesug.com)
Dort kann man entweder auf "Heute", "Vorherige Woche" oder "Nächste Woche" klicken. Klickt bitte auf eins von den drauf und schaut selber.
Kann mir dort jemand meinen PHP-Code aktualisieren?
Habe alles versucht...
PHP-Code:
<?php
$servername = "sql311.infinityfree.com";
$username = "if0_35049026";
$password = "XX";
$dbname = "if0_35049026_arbeitszeitplan";
$conn = new mysqli($servername, $username, $password, $dbname);
if ($conn->connect_error) {
die("Verbindung fehlgeschlagen: " . $conn->connect_error);
}
$currentWeek = isset($_GET['week']) ? intval($_GET['week']) : date('W');
$startDate = strtotime(date('Y') . "W" . $currentWeek);
$daysOfWeek = array('Mo.', 'Di.', 'Mi.', 'Do.', 'Fr.', 'Sa.');
echo "<br><br>";
echo "<div style='text-align: center;'>";
echo "<a href='#' onclick='showWeekDropdown();'><span style='color: black;'>KW {$currentWeek}</span></a>";
echo "<div id='weekDropdown' style='display: none;'>";
echo "<select id='weekSelector' onchange='changeWeek()'>";
for ($i = 1; $i <= 52; $i++) {
echo "<option value='$i' " . ($currentWeek == $i ? "selected" : "") . ">KW $i</option>";
}
echo "</select>";
echo "</div>";
echo "</div>";
echo "<div style='text-align: center;'>";
echo "<a href='?week=" . (($currentWeek == 1) ? 52 : $currentWeek - 1) . "' style='background-color: lightgreen; color: white; padding: 1px 1px; text-decoration: none; border-radius: 5px; font-size: 12px;'><< Vorherige Woche</a> | ";
echo "<a href='?week=" . date('W') . "' style='background-color: green; color: white; padding: 1px 1px; text-decoration: none; border-radius: 5px; font-size: 12px;'>Heute</a> | ";
echo "<a href='?week=" . (($currentWeek == 52) ? 1 : $currentWeek + 1) . "' style='background-color: lightgreen; color: white; padding: 1px 1px; text-decoration: none; border-radius: 5px; font-size: 12px;'>Nächste Woche >></a>";
echo "</div>";
echo "<div style='overflow-x:auto;'>";
echo "<table>";
echo "<tr><th>Mitarbeiter</th>";
for ($i = 0; $i < 6; $i++) {
$date = strtotime("+$i days", $startDate);
echo "<th>{$daysOfWeek[$i]}, " . date("d.m.y", $date) . "</th>";
}
echo "</tr>";
$sql = "SELECT name, von, bis, DATE_FORMAT(datum, '%Y-%m-%d') as formatted_date, DAYOFWEEK(datum) as dayOfWeek FROM arbeitszeiten WHERE WEEK(datum) = $currentWeek AND DAYOFWEEK(datum) >= 2 AND DAYOFWEEK(datum) <= 7";
$result = $conn->query($sql);
$employees = array();
if ($result->num_rows > 0) {
while ($row = $result->fetch_assoc()) {
$employees[$row["name"]][$row["formatted_date"]] = array(
"von" => date("H:i", strtotime($row["von"])),
"bis" => date("H:i", strtotime($row["bis"]))
);
}
}
foreach ($employees as $employee => $schedule) {
echo "<tr><td>{$employee}</td>";
for ($i = 0; $i < 6; $i++) {
$date = strtotime("+$i days", $startDate);
$formattedDate = date("Y-m-d", $date);
if (isset($schedule[$formattedDate])) {
echo "<td>{$schedule[$formattedDate]['von']} - {$schedule[$formattedDate]['bis']}</td>";
} else {
echo "<td></td>";
}
}
echo "</tr>";
}
echo "</table>";
echo "</div>";
$conn->close();
?>
Kommentar