NOVINKA! E-learningové kurzy umělé inteligence. Nyní AI za nejlepší ceny. Zjisti více:
NOVINKA – Víkendový online kurz Software tester, který tě posune dál. Zjisti, jak na to!

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.

Aktivity
Avatar
skilledt
Člen
Avatar
skilledt:15.1.2018 10:09

Dobrý den, vyvíjím takovou malou aplikaci v php/javascriptu a narazil jsem na takový problém. Aplikace má za úkol generovat jakousi infotabuli, na které se zobrazují nějaké základní informace o čase, počasí atd a ve zbytku obrazovky se zobrazují zprávy, které si tvoří uživatel v tinyMce editoru.
U jednotlivých zpráv si může nastavit, zda se daná zpráva bude na displeji zobrazovat pouze v určité dny(např. jen v po a st) a nastavuje se také datum od do, kdy se má zpráva zobrazovat.
Nyní bych rád funkcionalitu rozšířil, aby u zprávy šlo nastavit i pravidelné časové rozmezí kdy se bude zobrazovat každý den - např. od 12:00 do 15:00.
Není mi ale úplně jasné jakým způsobem lze ukládat pouze čas do databáze, následně ho z ní opět získat a hlavně je následně porovnávat, tak aby se porovnával čas relativně vůči danému dni a ne vůči konkrétnímu dni s datumem.

 
Odpovědět
15.1.2018 10:09
Avatar
Odpovídá na skilledt
Dominik Gavrecký:15.1.2018 11:51

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...

Nahoru Odpovědět
15.1.2018 11:51
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
skilledt
Člen
Avatar
Odpovídá na Dominik Gavrecký
skilledt:15.1.2018 12:03

Tomu rozumím, ale já potřebuji porovnávat pouze čas, tedy pouze hodiny, minuty nezávisle na tom jaké je datum.

 
Nahoru Odpovědět
15.1.2018 12:03
Avatar
Odpovídá na skilledt
Dominik Gavrecký:15.1.2018 12:10

Ako si to ukladáš do DB ? V akom type ?

Nahoru Odpovědět
15.1.2018 12:10
Hlupák nie je ten kto niečo nevie, hlupákom sa stávaš v momente keď sa na to bojíš opýtať.
Avatar
dez1nd
Člen
Avatar
Odpovídá na skilledt
dez1nd:15.1.2018 12:12

Začínáš si trochu protiřečit, chceš teda porovnávat jen čas ? nebo i datum ? popřípadě den ?

 
Nahoru Odpovědět
15.1.2018 12:12
Avatar
skilledt
Člen
Avatar
Odpovídá na Dominik Gavrecký
skilledt:15.1.2018 12:18

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?

Editováno 15.1.2018 12:20
 
Nahoru Odpovědět
15.1.2018 12:18
Avatar
skilledt
Člen
Avatar
Odpovídá na dez1nd
skilledt:15.1.2018 12:24

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/ne­zobrazovat

 
Nahoru Odpovědět
15.1.2018 12:24
Avatar
dez1nd
Člen
Avatar
Odpovídá na skilledt
dez1nd:15.1.2018 12:42

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)

 
Nahoru Odpovědět
15.1.2018 12:42
Avatar
skilledt
Člen
Avatar
Odpovídá na dez1nd
skilledt:15.1.2018 14:45

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ší?

 
Nahoru Odpovědět
15.1.2018 14:45
Avatar
Odpovídá na skilledt
Martin Štěpánek :15.1.2018 21:09

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š :-` :-D

EDIT: Ono stačí, když to jen vypadá jako číslo :-D

Editováno 15.1.2018 21:10
Nahoru Odpovědět
15.1.2018 21:09
Všechno jde naprogramovat, chce to jen čas a chuť...
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 10 zpráv z 10.