Dnešní a zítřejší den v kalendáři označit jako nedostupný
Tomina10
(11 hodnocení)
9. 10. 2020 11:08:18
Poklidný pátek všem zdepřítomným!Měl bych takovou prekérku, z tohoto úryvku kódu mám definováno, že se mi v kalendáři objevuje aktuální den nedostupný. Avšak, potřeboval bych mít nedostupný i následující den...Nemůže mi někdo prosím pomoc? Podle mého někde chybí znaménko, číslo a je to..Ale furt nic :/Děkuju moc.. $today = getdate(time()); $rows = 0; while ($d <= $daysInMonth) { $s .= "n"; if ($this->weekNumbers) { $s .= $weekNumPattern; } for ($i = 0; $i < 7; $i++) { $scope = 0; $timestamp = mktime(0, 0, 0, $month, $d, $year); $isPast = false; $class = ""; if ($d < 1 || $d > $daysInMonth) { $class = $this->classEmpty; } elseif ($timestamp <= $today) { $isPast = true; $class = $this->classPast; $scope = -1; } else { $class = $this->classCalendar; $scope = 1; }
9. 10. 2020 11:08:18
Tomáš Faldyna
(54 hodnocení)
9. 10. 2020 13:31:09
Ja bych k $today pripocetl 1 den, tedy +86400s :]
} elseif ( $timestamp <= ( $today + 86400 ) ) {
9. 10. 2020 13:31:09
Tomina10
(11 hodnocení)
9. 10. 2020 14:12:44
Ahoj,děkuju za reakci. :)Já to vyřešil nakonec takto, a tváří se že je vše v pořádku (ale nějak se mi tomu nechce moc věřit) :DTedy nejspíš použiju tvé řešení. Děkuju :) $scope = 0; $timestamp = mktime(0, 0, 0, $month, $d, $year); $nxt = mktime(0, 0, 0, $month, $d - 1, $year); $isPast = false; $class = ""; if ($d < 1 || $d > $daysInMonth) { $class = $this->classEmpty; } elseif ($nxt <= $today) { $isPast = true; $class = $this->classPast; $scope = -1; } else { $class = $this->classCalendar; $scope = 1; }Napsal winexec;1599990Ja bych k $today pripocetl 1 den, tedy +86400s :] } elseif ( $timestamp <= ( $today + 86400 ) ) {
9. 10. 2020 14:12:44
Smazaný účet hvLPwPN09D
(3 hodnocení)
9. 10. 2020 14:20:38
To s tím přičítáním dne v sekundách může bejt mrzení, když neošetříš časový posuny, jako zimní a letní čas a tak dále, nebo se pletu? Jsem taky začátečník, jen dotaz do placu :-D
9. 10. 2020 14:20:38
hm
(20 hodnocení)
9. 10. 2020 15:02:04
Nepletes. lepsi udelat strtotime(date('Y-m-d', $today).' +1 day');nebo proste rovnou misto $today udelat$tomorrow = strtotime('tomorrow');a pracovat s tim misto s today...btw neni treba $today = getdate(time()); a pak $today;proste strtotime('today');
9. 10. 2020 15:02:04
Tomáš Faldyna
(54 hodnocení)
9. 10. 2020 15:59:38
Ta jedna hodinu posuvu (d.m.Y H:i:s) behem celeho dne (d.m.Y), nema na celkove datum vliv.Pokud je dnes 9.10.2020 ... 2h nebo 3h rano ... stale je 9.10.2020 ... ktere autor porovnava.31.12. -> 1.1. taky neni problem, protoze pracuje s timestamp, ktere se neustale zvysuje (+1s).Ano, problem nastane az 19.1.2038, ale to uz je na jine tema.Pouzit tedy zminenou druhou promennou: $tomorrow = strtotime('tomorrow'); ... je asi nejvhodnejsi reseni :)Napsal Tomáš Maňhal;1599998To s tím přičítáním dne v sekundách může bejt mrzení, když neošetříš časový posuny, jako zimní a letní čas a tak dále, nebo se pletu? Jsem taky začátečník, jen dotaz do placu :-D
9. 10. 2020 15:59:38
hm
(20 hodnocení)
9. 10. 2020 16:06:18
winexec: to teda je problem, pracuje s datumem 9.10.2020 00:00:00 kdyz predpokladame ze se dnes presouvaji hodiny ze 3. na 2. hodinu, znaemna to ze den se prodlouzil o 3600 sekund, pricist 86400 tedy zpusobi ze bude datum 9.10.2020 23:00:00 = datum se nezmeni i kdyz mel, zkratka pricitat sekundy kdyz chci menit dny/tydny/mesice je spatne v jakymkoliv pripade, je to bad practice a proboha to nikdo nedelejte :) pak se do programu zanasi uplne zbytecny tezko odhalitelny bugy...
9. 10. 2020 16:06:18
Tomáš Faldyna
(54 hodnocení)
9. 10. 2020 16:11:57
Bavime se ale o ZITRKU, ktery prakticky nenastal, proto je to v tomto pripade jedno. Navic <= vse resi.Pokud by se jednalo o DNESEK, pak s tebou na 1000% souhlasim ;)Napsal Aleš Jiříček;1600013winexec: to teda je problem, pracuje s datumem 9.10.2020 00:00:00 kdyz predpokladame ze se dnes presouvaji hodiny ze 3. na 2. hodinu, znaemna to ze den se prodlouzil o 3600 sekund, pricist 86400 tedy zpusobi ze bude datum 9.10.2020 23:00:00 = datum se nezmeni i kdyz mel, zkratka pricitat sekundy kdyz chci menit dny/tydny/mesice je spatne v jakymkoliv pripade, je to bad practice a proboha to nikdo nedelejte :) pak se do prorgamu zanasi uplne zbytecny tezko odhalitelny bugy...
9. 10. 2020 16:11:57
hm
(20 hodnocení)
9. 10. 2020 16:15:14
vubec nechapu o cem to mluvis, ten kod proste v den kdy se prechazi ze 3. hodiny zpet na 2. nebude fugnovat spravne, vsad se... Plus proste se to nedela a tecka. Zadny ze nekdy to nevad a nekdo jo, s timhle pristupem programuje prase, ne programator.//edit vidim, pricitas k today, jsem to v hlave obratil, takze ta podminka projde, to o praseti nicmene plne plati :) a rekni co jsem prohral
9. 10. 2020 16:15:14
Tomáš Faldyna
(54 hodnocení)
9. 10. 2020 16:31:37
Aaa ... vidim Edit, takze uz si snad konecne rozumime. Vyhravas bludistaka :] Je to prasokod, ale co nadelas ... kazdy dela, jak umi (autor, ja, ty ...)Napsal Aleš Jiříček;1600015vubec nechapu o cem to mluvis, ten kod proste v den kdy se prechazi ze 3. hodiny zpet na 2. nebude fugnovat spravne, vsad se... Plus proste se to nedela a tecka. Zadny ze nekdy to nevad a nekdo jo, s timhle pristupem programuje prase, ne programator. //edit vidim, pricitas k today, jsem to v hlave obratil, takze ta podminka projde, to o praseti nicmene plne plati :) a rekni co jsem prohral
9. 10. 2020 16:31:37
Pro odpověď se přihlašte.
Přihlásit
Prodej
Více
Adult Inzerce – pro pracující dívky
9 900 Kč
0 příhozů
Kreativní Omalovánky – prodej digitálních produktů
20 000 Kč
0 příhozů
💸 Srovnavač půjček abpujcky.cz
50 000 Kč
0 příhozů
P: databáze všech domén (všechny TLD) s automaticky aktualizovaným WHOIS
1 000 Kč
0 příhozů