Za darmo na e-mailPraktyczny kurs PHP (aż 200 stron!)

Krok po kroku, opanuj podstawy PHP za darmo - praktyczny kurs w formie e-booka prosto na Twój e-mail

Tło komórki w zależności od czasu

2.85K views
0
0 Comments

Witam

Jak zrobić żeby tło komórki zmieniało się w zależności od czasu pozostającego do wyznaczonego terminu?

<table>
<tr>
<td style="width: 10%; text-align: center;">Lp</td>
<td style="width: 45%; text-align: center;">Data</td>
<td style="width: 45%; text-align: center;">Termin</td>
</tr>
 <?php
$czas = date("Y-m-d");
 mysqli_query($connect, 'SET @i:=0');
$zapytanie = "SELECT *, @i:=@i+1 Lp FROM tabela";
$wykonaj = mysqli_query ($connect, $zapytanie);
 while ($wiersz=mysqli_fetch_array ($wykonaj))
 function kolorczas() {
if(strtotime($wiersz['termin']) <= strtotime("$czas +3 day"))
    echo "<td style=\"background-color:orange;\">" . $wiersz['termin'] . "</td>";
else
    echo "<td style=\"background-color:blue;\">" . $wiersz['termin'] . "</td>";
}
 {
echo "<tr><td>" . $wiersz['Lp']. "</td><td>" . $czas . "</td>" . kolorczas() . "</tr>";
}
?>
</table>

Marcin Wesel Answered question 16 października 2020
Add a Comment
0

Hej Andrzeju,

problemem jest policzenie, ile czasu zostało do danej daty, czy też pokolorowanie komórki?

Z tego co widzę, poprawnie ustawiasz background-color w CSS, stąd zakładam, że w liczeniu daty jest trudność.

Do dat polecam klasę DateTime, której możesz używać obiektowo lub proceduralnie. Do policzenia różnicy możesz użyć metody diff:

<php
$start = '2020-10-15 20:25'; 
$end   = '2020-10-16 21:21'; 
$dateStart = new DateTime($start); 
$dateEnd   = new DateTime($end); 
$difference = $dateStart->diff($dateEnd); 
// w obiekcie $difference jest zawarta różnica w czasie
$difference->days; // tutaj jest liczba dni
$difference->h; // tutaj godzin, z tym że gdy wartość osiągnie 24, liczba dni zwiększa się o 1 a godziny wracają do zera
$roznica_w_godzinach = $difference->days * 24 + $difference->h;

Natomiast wersja z strtotime również powinna zadziałać bez problemu.

Opiszesz dokładniej, co konkretnie nie działa?

Marcin Wesel Edited answer 16 października 2020
Add a Comment
You are viewing 1 out of 2 answers, click here to view all answers.
Write your answer.
Ominiesz taką okazję?Praktyczny Kurs PHP (aż 200 stron!) za darmo

Gorąco polecam, naprawdę warto skorzystać! To nic nie kosztuje. Krok po kroku, opanuj podstawy PHP za darmo - praktyczny kurs w formie e-booka prosto na Twój e-mail.