IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
Marek Burda
Člen
Avatar
Marek Burda:11.9.2017 11:08

Ahoj :) Tak som tu znovu, s novým problémom. Snažím sa získať % zo zostávajúceho času čiže vlastne koľko % už je nato aby sa naplnil celý bar. Všetky časy mám v databáze :) Zatiaľ to vyzerá nejak takto ale hádže to chybu že finálny výsledok % je 0. Neviete kde môže byť problém ? :)

  <?php


$current = date('Y-m-d H:i:s');
$start_time = $action['action_start'] ;
$end_time = $action['action_exp'] ;


$completed = (($current - $start_time) / ($end_time - $start_time)) * 100;


echo $start_time."<br>".$current."<br>".$end_time."<br>".$completed;

  ?>

Output:

Warning: Division by zero in xaxa.php on line 50
2017-09-11 10:58:17
2017-09-11 11:07:44
2017-09-11 11:43:17
0

Editováno 11.9.2017 11:09
 
Odpovědět
11.9.2017 11:08
Avatar
Marek Burda
Člen
Avatar
Marek Burda:11.9.2017 11:11

Na ukážku : snažím sa o niečo podobné ako tu až nato že netuším prečo to neklape. Je možné že to nevie pracovať s celý dátumom ?
https://stackoverflow.com/…a-percentage

 
Nahoru Odpovědět
11.9.2017 11:11
Avatar
Odpovídá na Marek Burda
Martin Konečný (pavelco1998):11.9.2017 11:20

Ahoj, nemůžeš od sebe odečítat nečíselné formáty (máš tam formát Y-m-d H:i:s), převeď si to na timestamp, třeba přes

$current = strToTime(date("Y-m-d H:i:s"));

Nebo by mělo fungovat i jednoduše

$current = time();

Stejně tak si musíš převést všechny časy, se kterými pracuješ. Případně využít třídy DateTime.

Editováno 11.9.2017 11:20
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
11.9.2017 11:20
Aktuálně připravuji browser RPG, FB stránka - https://www.facebook.com/AlteiraCZ
Avatar
Marek Burda
Člen
Avatar
Marek Burda:11.9.2017 11:25

Super myslím že to mám :)

  <?php


$current = time();
$start_time = strToTime($action['action_start']);
$end_time = strToTime($action['action_exp']);
$completed = (($current - $start_time) / ($end_time - $start_time)) * 100;
echo $start_time."<br>".$current."<br>".$end_time."<br>".$completed;
 ?>

Output:

1505120297
1505121928
1505122997
60.407407407407

 
Nahoru Odpovědět
11.9.2017 11:25
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 4 zpráv z 4.