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 zone Toto 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: 3 roky
|
0