Diskuze: Výkaz práce
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.
Ahoj,
určitě bych použil datum i čas klasickým databázovým formátem a užil na to:
google = mysql date
https://dev.mysql.com/…nctions.html
mysql> SELECT NOW();
-> '2007-12-15 23:50:26' -- 'YYYY-MM-DD HH:MM:SS'
mysql> SELECT NOW() + 0;
-> 20071215235026.000000 -- YYYYMMDDHHMMSS.micro
https://dev.mysql.com/…e-types.html
11.3 Date and Time Types
Tady zminuji o automatickem updatu (jakoze pri vytvoreni radku ti umi dat do
toho sloupce default hodnotu podle aktualniho casu databaze, pokud ji neuvedes v
INSERT dotazu) pro typy: TIMESTAMP and DATETIME.
Coz je fajn, proto se pouzivaji tyhle 2.
S timestamp se lepe pracuje pro rychle vyhledavani.
Datetime je take pouzitelne pro vyhledavani, ale je to string. takze je spise
vhodnejsi pro zobrazovani.
Vetsina lidi dava prednost pohodli, datetime (string 10).
Ve firme, kde probiha milion transakci denne, treba vsechny pokladny v
supermarketu, tam pri prohlizeni zaznamu, pokud to nekdo potrebuje delat casto,
je lepsi timestamp (string 4).
Nebo muzes ulozit oba udaje. Pokud ti nevadi duplicitni polozka ve sloupci.
Jo, zapomnel jsem zminit, ze je treba si pohlidat casovou zonu. Takze je
dobre pouzivat udaj sql serveru a ne cislo od uzivatele, ktere bys musel
prepocitavat. Prepocitavani pro SELECT zas tak nevadi. (na druhou stranu, select
se dela asi vicekrat )
jak se dá sečíst více času ve formátu
1:20:00
0:30:00
0:20:00
0:10:00
a výsledek je 2:20:00
napadlo mě to převest na milisekundy a sečíst do hromady ale už nemohu
přijít na to jak to zase vrátit zpět na tento formát h:m:s .
Nebo to počitat jiným způsobem?
Děkuji moc za rady
Zpět to převedeš pomocí celočíselného dělení a zbytku po celočíselném dělení tzv. modulo.
google = mysql time plus
https://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_addtime
mysql> SELECT ADDTIME('01:00:00.999999', '02:00:00.999998');
-> '03:00:01.999997'
google = php time plus
$endTime = strtotime($selectedTime) + 900;
$selectedTime = "9:15:00";
$endTime = strtotime("+15 minutes", strtotime($selectedTime));
echo date('h:i:s', $endTime);
$selectedTime = "9:15:00";
$datetime = DateTime::createFromFormat('g:i:s', $selectedTime);
$datetime->modify('+15 minutes');
echo $datetime->format('g:i:s');
$zacatek = strtotime('08:00:00');
$konec = strtotime('10:45:00');
$rozdil = round(abs($konec - $zacatek) / 3600,2);
echo $rozdil;
poradíte někdo jak dostat výsledek z těchto časových údajů pomocí
PHP
0:30:00
0:20:00
1:10:00
= 2:00:00
Děkuji moc za radu
Kdyz ti nevyhovuje zadne z tech reseni, muzes si udelat vlastni funkci a naexplodovat si to.
echo $strA.'<br>';
echo $strB.'<br>';
$arrA = explode(":", $strA);
$arrB = explode(":", $strB);
$arrA[0] = $arrA[0] * 1 + $arrB[0] * 1;
$arrA[1] = $arrA[1] * 1 + $arrB[1] * 1;
$arrA[2] = $arrA[2] * 1 + $arrB[2] * 1;
echo implode(":", $strA).'<br>';
Zobrazeno 10 zpráv z 10.