Autor | Zpráva | ||
---|---|---|---|
Sidbin Profil |
#1 · Zasláno: 20. 8. 2017, 15:13:17
Mám na stránce tento cyklus a puvodně vypisoval datum ve formátu z DB 2017-08-01 00:14:38. Chtěl jsem ho upravit na název měsíce a rok, jenže výsledek teď to vyhodí leden 1970:
January 1970: 5.58 kWh. Správně by mělo být srpen 2017. Kde jsem udělal chybu? Nevypíše to ani ten měsíc česky a to mám nahoře i SetLocale(LC_ALL, "Czech"); Díky. <?php while ($pulnoc = mysql_fetch_assoc($result)) { echo strftime('%B %Y', strftime($pulnoc['index'])) .": <b> ". (Round(($solar - $pulnoc[$jmenosenzoru]),2)) . "</b> kWh<br>\n"; $solar = $pulnoc[$jmenosenzoru]; $datum = $pulnoc['index']; |
||
TomášK Profil |
Z dokumentace
strftime : The optional timestamp parameter is an integer Unix timestamp.
Potřebuješ tedy datum z databáze převést na timestamp, viz dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_unix-timestamp. |
||
Sidbin Profil |
Díky pomohlo to, ale narazil jsem na jiný problém po úpravě, předtím byl výpis OK za každý měsíc to vypsalo hodnotu spotřeby v pořádku, ale teď je první hodnota záporná a špatně vypočtená (cca 20*větší), zbytek sedí.
while ($pulnoc = mysql_fetch_assoc($result)) { echo iconv("WINDOWS-1250", "UTF-8", strftime('%B %Y', strtotime($pulnoc['index']))) .": <b> ". (Round(($solar - $pulnoc[$jmenosenzoru]),3)) . "</b> kWh<br>\n"; $solar = $pulnoc[$jmenosenzoru]; $datum = $pulnoc['index']; Ještě dodatek, tato stará verze to vypočítá dobře: while ($pulnoc = mysql_fetch_assoc($result)) { echo $pulnoc['index'] ." , ". (Round(($solar - $pulnoc['spotreba_solar']),3)) . "<br>\n"; $solar = $pulnoc['spotreba_solar']; $datum = $pulnoc['index']; |
||
Keeehi Profil |
#4 · Zasláno: 21. 8. 2017, 14:21:13
Sidbin:
Tady se ale nic nepočítá. Výpočet máš asi v SQL dotazu, ale ten jsi tu neukázal. |
||
Sidbin Profil |
#5 · Zasláno: 21. 8. 2017, 16:18:06
Jenže mysql dotaz je OK, pokud nahradím starou verzi za novou, tak to udělá chybu. Stejny mysql dotaz používám pro JSON pro graf a tam je výsledek cca 5kWh zde je -107kWh.
|
||
Tomášeek Profil |
#6 · Zasláno: 21. 8. 2017, 16:34:27
Sidbin:
Co je v proměnné $jmenosenzoru ? Pokud cokoliv jiného než string spotreba_solar , tak ty kódy nejsou ani v nejmenším ekvivalentní.
Navíc pracuješ s proměnnou $solar , kde se na 2. řádku bere, když je definována až o řádek níže?
Co vypíše print_r($pulnoc) hned za while , abychom byli v obraze ohledně dat (a jejich formátu) v jednotlivých proměnných?
|
||
Sidbin Profil |
#7 · Zasláno: 21. 8. 2017, 18:25:17
Už jsem na to pak přišel, byla tam chyba u proměnné, která bere aktuální hodnotu, při přepisu jsem ji zapoměl změnit. Je definována o kousek výše, myslel jsem, že je chyba v této části, upravil jsem totiž soubor PLYN na SOLAR a zapoměl změnit jednu proměnnou. :-)
Jen mě ještě trochu zlobí formátování toho textu, když chci trochu zarovnat vypsaný text doleva , tak to neproleze a PHP hodí chybu. dík. $aktualni = mysql_fetch_assoc($result); if (!$aktualni) { die('Error: ' . mysql_error()); } $senzor = $aktualni[$jmenosenzoru]; $datum = $aktualni['index']; ?> <p style="text-align: center;"> <?php while ($pulnoc = mysql_fetch_assoc($result)) { echo iconv("WINDOWS-1250", "UTF-8", strftime('%B %Y', strtotime($pulnoc['index']))) .": <b> ". (Round(($senzor - $pulnoc[$jmenosenzoru]),3)) . "</b> kWh<br>\n"; $senzor = $pulnoc[$jmenosenzoru]; $datum = $pulnoc['index']; } ?> </p> |
||
Tomášeek Profil |
#8 · Zasláno: 21. 8. 2017, 18:32:49
Sidbin:
„tak to neproleze a PHP hodí chybu.“ Jakou chybu? Doporučuji ji vložit nejprve do vyhledávače, pokud jejímu znění nerozumíš. Ač její znění neznám, věštit neumím, mohu tě ujistit, že souvisí s něčím jiným, než HTML kódem mimo PHP blok. |
||
Časová prodleva: 6 let
|
0