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.
Člen
Zobrazeno 10 zpráv z 10.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
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.