| Autor | Zpráva | ||
|---|---|---|---|
| Andrej.B Profil |
#1 · Zasláno: 10. 11. 2020, 20:04:07
Zdravim,
mam problem pri logike zobrazenia akcie podla Datumu. Mam v DB datum v timestamp - datum_plan_vyroby_end Ak otvorim planovanie vyroby, zobrazuje mi co vsetko treba spravit s tym, ze je tam datum kedy to mam byt hotovo. Rad by som si ten cely riadok vyfarbil na zlto ak sa priblizim k tomu datumu na 3 dni. Teda dnes je 10.11.2020 a ak je datum datum_plan_vyroby_end 11,12 alebo 13.11.2020 urobi sa akcia ze riadok v tabulke prida <tr class="bg-yellow" Ak je to viac ako 3 dni, teda 14.11.2020 neurobi nic. Pokial datum koliduje s dneskom alebo je uz mensi ako dnes, bude akcia na riadok <tr> class="bg-red" Ako si mozem urobit podmienku? Netusim ako porovnat takto datumy. datum_plan_vyroby_end+3 < DNES = nerob nic datum_plan_vyroby_end+3 > dnes = yellow. datum_plan_vyroby_end < dnes = red Diky za pomoc |
||
| Kajman Profil |
#2 · Zasláno: 10. 11. 2020, 20:58:37
Ten timestamp máte v php jalo číslo? Pak přičítáte 3 sekundy místo 3 dnů.
|
||
| Andrej.B Profil |
#3 · Zasláno: 10. 11. 2020, 21:12:43
Kajman:
tam je to myslene ako +3 dni, len pre tu predstavu... V skutocnosti je to datum_plan_vyroby_end+(60x60x24*3) .. Cely ten problem je pre mna prilis. |
||
| anonym_ Profil * |
#4 · Zasláno: 10. 11. 2020, 21:19:17
Andrej.B:
A kde je konkrétně problém? Mas timestamp v databazi, mas aktuální timestamp (time()), nebo jakýkoliv jiný formát data (date()). Je to o porovnání dvou čísel. Ten problém, nebo “co je na tebe příliš” moc nevidim. |
||
| Kajman Profil |
#5 · Zasláno: 10. 11. 2020, 21:22:06
Jaký je výstup
var_dump($hodnotasloupce); |
||
| Andrej.B Profil |
#6 · Zasláno: 12. 11. 2020, 17:09:50
ja mam prave problem s tou podmienkou v php...
if ($hotnotazDb <= dnes+3dni but > dnes) = zlta netusim ako to dat do poriadku... ale hotove mi nikdo neda :) |
||
| Kajman Profil |
#7 · Zasláno: 12. 11. 2020, 17:48:09
Dumpněte $hotnotazDb, protože nevíme jakého typu ta proměnná je!
|
||
| Andrej.B Profil |
Kajman:
ako som pisal, datum je timestamp: var_dump, mam tam 3 rozne testovacie polozky... string(10) "1599987600" string(10) "1604826000" string(10) "1604653200" Aby som mal vysledok RED: // $timestamp2 je datum v timestamp formate ... $row['datum_plan_vyroby_end']
$now = mktime(0, 0, 0, date("m") , date("d"), date("Y")); // datum prave teraz
$danger= $timestamp2-$now; // premenna koniec datum - teraz
$danger2= $timestamp2-$danger;
if ($timestamp2 < $danger2) { echo ' class="bg-danger"';} // ak je timestap2 mensi ako $danger sme uz v RED zoneToto funguje ale je to krkolomne... Ale je to len na RED... Najskor by so potreboval asi podmienku 1 ze je to viac ako 3 dni a nepokracoavt dalej... Ak je to 3 az 1, vykonat podmienku 2 a potom ak je to 0 az nekonecno do minusu vykonat podmienku 3 if (podmienka 1) {
nevykonat nic
}
else {
if (podmienka 2)
{ (warning) }
else { (danger) }
}Pre dnesny datum by platilo : 14.11.2020 a menej - RED 15.11.2020 - 17.11.2020 - yellow 18.11.2020 a viac - nic Zamotane... Tak som to konecne dal nejako do kopy, ale vypada to hrozne... funkcne, ale hrozne ... Potrebujem proste obcas nieco zosmolit a vysledok je takyto: $now = mktime(0, 0, 0, date("m") , date("d"), date("Y"));
$now3 = mktime(0, 0, 0, date("m") , date("d")+3, date("Y"));
$danger = $timestamp2-$now;
$danger2 = $timestamp2-$danger;
if ($timestamp2 > $now3)
{ echo ' class="bg-success"';}
else {
if ($timestamp2 < $danger2)
{ echo ' class="bg-danger"';}
else { echo ' class="bg-warning"';}
}
|
||
| Kajman Profil |
#9 · Zasláno: 15. 11. 2020, 13:54:26
Pokud nepotřebujete řešit to, že některé dny mají 23 nebo 25 hodin, tak stačí jen porovnat počet zbývajícíh sekund do termínu.
$timestamp2 = "1599987600";
$secondsleft = $timestamp2 - time();
$barva = "green";
if ($secondsleft<=0) {
$barva = "red";
}
elseif ($secondsleft<=60*60*24*3) {
$barva = "orange";
} |
||
| Andrej.B Profil |
#10 · Zasláno: 15. 11. 2020, 18:53:11
Kajman:
tak to vypada super a viac zrozumitelne... Pouzijem vase.. Diky |
||
|
Časová prodleva: 6 let
|
|||
0