Diskuze: Ukládání a porovnávání relativního času v php
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Zobrazeno 10 zpráv z 10.
K personalizaci obsahu a reklam, poskytování funkcí sociálních médií a analýze naší návštěvnosti využíváme soubory cookie. Informace o tom, jak náš web používáte, sdílíme se svými partnery pro sociální média, inzerci a analýzy. Partneři tyto údaje mohou zkombinovat s dalšími informacemi, které jste jim poskytli nebo které získali v důsledku toho, že používáte jejich služby.
Používáme nezbytné cookies pro fungování webu a s tvým souhlasem také analytické a marketingové cookies.
Zajišťují základní funkce, bezpečnost a služby, které sis vyžádal. Nelze je vypnout.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| ITnetwork | ITnetwork | Provoz webu, relace, přihlášení a uložení nastavení cookies. | PHPSESSID, auth_token, sid, itn_consent_impression, __Host-itn_consent | Relace až 1 rok |
| Google Tag Manager | Správa značek a načítání měřicích nástrojů webu. | Žádné | Neukládá se | |
| Google Fonts | Načítání typografie webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google Hosted Libraries | Načítání potřebných knihoven a stylů webu. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele | |
| Google reCAPTCHA | Ochrana formulářů a webu před zneužitím. | _GRECAPTCHA, rc::a, rc::b, rc::c, rc::f | Relace až 180 dní | |
| YouTube | Přehrávání vloženého video obsahu. | localStorage, IndexedDB; cookies after playback interaction | Relace až trvalé úložiště | |
| Vimeo | Vimeo | Přehrávání vloženého video obsahu. | __cf_bm, _cfuvid, vuid, localStorage, IndexedDB | Relace až 2 roky |
| Facebook Login | Meta | Přihlášení pomocí účtu třetí strany. | Úložiště řízené poskytovatelem | Relace až 1 rok |
| GoPay | GoPay | Zpracování uživatelem vyžádané platby. | Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
Pomáhají nám porozumět používání webu a zlepšovat ho.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Analytics 4 | Měření návštěvnosti a používání webu. | _ga, _ga_* | Až 2 roky | |
| Microsoft Clarity | Microsoft | Měření návštěvnosti a používání webu. | _clck, _clsk, _cltk | Relace až 1 rok |
Slouží k měření kampaní, personalizaci reklamy a marketingové komunikaci.
| Služba | Poskytovatel | Účel | Cookies a úložiště | Doba uložení |
|---|---|---|---|---|
| Google Ads | Měření kampaní, reklama a remarketing. | _gcl_au, _gcl_ls | Relace až 90 dní | |
| Meta Pixel | Meta | Měření kampaní, reklama a remarketing. | _fbp, _fbc, localStorage | Až 90 dní |
| Sklik | Seznam.cz | Měření kampaní, reklama a remarketing. | retargeting, sid, szn:* | Relace až trvalé úložiště |
| LinkedIn Insight | Měření kampaní, reklama a remarketing. | bcookie, li_gc, lidc, __cf_bm | Relace až 1 rok | |
| Ecomail | Ecomail.cz | Měření kampaní, reklama a remarketing. | ecmid, Úložiště řízené poskytovatelem | Dle podmínek poskytovatele |
| Atribuce kampaní ITnetwork | ITnetwork | Přiřazení návštěvy a objednávky ke kampani. | campaign_clid[*], user_session_context | Až 1 rok |
V předchozím kvízu, Online test znalostí PHP, jsme si ověřili nabyté zkušenosti z kurzu.


Uloženie času do DB nájdeš v TUT tu na sieti. Následne si to vytiahneš a hodnotu si upravíš podľa toho čo potrebuješ porovnávať.
A už to len následne hodiť do podmienky niečo ako:
$today = date("Y-m-d H:i:s");
$date = "2010-01-21 00:00:00";
if ($date < $today) {
len podmienka bude o niečo dlhšia...
Tomu rozumím, ale já potřebuji porovnávat pouze čas, tedy pouze hodiny, minuty nezávisle na tom jaké je datum.
Začínáš si trochu protiřečit, chceš teda porovnávat jen čas ? nebo i datum ? popřípadě den ?
Mno to právě promýšlím, zatím se mi jako nejschůdnější řešení
uložit to normálně jako string, třeba "06:30" do db, a při vytažení z db
si to pomocí strtotime() převedu a krásně to můžu porovnat se současným
časem, jelikož v obouch případech se automaticky přiřadí aktuální
datum.
Když to budu hnát do DateTimu/timestampu hned na začátku, uložím do db,
ale pak pro porovnávání budu muset u aktuálního času vždycky upravit
datum, abych to bylo v rámci stejného dne.
Nebo je nějaká elegantnější cesta?
Chci porovnávat pouze čas, u zprávy bude např. zobrazit od 07:30 do
15:30.
Chci tedy tyto dva časy uložit a následně je tahat z db, porovnávat s
aktuálním časem a na základě toho zobrazovat/nezobrazovat
a co ti na tom není jasné ?
v jakém formátu ukládat do db ? já bych použil time, když už tam je (v
postgresu) tak proč to nevyužít.
porovnávat čas můžeš klasicky (větší/menší/rovná se)
Zkusil jsem to uložit jako time, když to potom zpátky z db vytáhnu, je to prostě string, to můžu jen tak porovnávat pomocí větší menší?
PHP je dynamický jazyk, tobě je jedno jestli to je string nebo int, pokud
je to ve tvaru čísla, tak máš všechno, co potřebuješ

EDIT: Ono stačí, když to jen vypadá jako číslo 
Zobrazeno 10 zpráv z 10.