Autor | Zpráva | ||
---|---|---|---|
pepepa Profil * |
#1 · Zasláno: 20. 9. 2007, 17:28:42
Ahoj, vytvořil jsem si prográmek, který by měl po zadání začátku a konce akce zobrazovat buť : že akce bude probíhat - doba, za kterou začne, potom když je začátek akce, tak se zobrazí graf, a když akce skončí, tak se vypíše, že akce skončila. Ale někde v tom programu je chyba, pomohl by mi ji někdo lokalizovat??? Ten script je zde : [code]<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> <title>Graf</title> </head> <body bgcolor="black"> <style> .graph { position: relative; /* IE is dumb */ width: 200px; border: 1px solid #B1D632; padding: 0px; } .graph .bar { display: block; position: relative; background: #B1D632; text-align: center; color: white; height: 2em; line-height: 2em; } .graph .bar span { position: absolute; left: 1em; } </style> <div class="graph"> <?php // zacatek akce - hodiny, minuty, mesic a rok $hod = 16; $min = 22; $mesic = 9; $den = 20; $rok = 2007; // konec akce - hodiny, minuty, mesic a rok $hod_k = 16; $min_k = 25; $mesic_k = 9; $den_k = 20; $rok_k = 2007; // vypocet doby do zacatku akce $cas_akce = mktime($hod, $min, 0, $mesic, $den, $rok); $cas_ted = mktime(); $d_sec = $cas_ted - $cas_akce; $d_day = floor($d_sec/86400); // zaokrouhli dny na cela cisla $d_sec -= $d_day * 86400; $d_hrs = floor($d_sec/3600); // zaokrouhli hodiny na cela cisla $d_sec -= $d_hrs * 3600; $d_min = floor($d_sec/60); // zaokrouhli minuty na cela cisla $d_sec -= $d_min * 60; // vypocet procent probihajici akce $uplynule = $d_sec * 60; // pocet minut, ktere ubehly od zacatku akce $celk = mktime($hod_k,$min_k,0,$mesic_k,$den_k,$rok_k) - mktime($hod,$min,0,$mesic,$den,$rok) * 60; // celkova doba trvani akce v minutach $procenta = round(($uplynule * 100) / $celk); if ( $d_sec < 0 ) // vypise hlasku (akce nezacala) print "Do akce zbývá $d_day dní, $d_hrs hodin, $d_min minut, $d_sec vteřin."; elseif ( $d_sec = 0 ) // akce zacala echo'<strong class="bar" style="width: '.$procenta.'%;">'.$procenta.'%</strong>'; else // akce skoncila print "Akce skončila."; ?> </div> </body> </html> [/code] |
||
Str4wberry Profil |
#2 · Zasláno: 20. 9. 2007, 17:32:42
pepepa
A to Ti jedno vlákno nestačí. |
||
Joker Profil |
#3 · Zasláno: 20. 9. 2007, 17:33:00
Není to tu už v jiném tématu?
Jaký je výsledek? Co to vypíše? Nějaká chyba/varování? |
||
pepepa Profil * |
#4 · Zasláno: 20. 9. 2007, 17:42:05
Str4wberry
Omlouvám se, ale jsem fakt úplně zoufalej Joker žádnou chybu ani varování to nevypíše, pořád to vypisuje to samé - http://lion-audio.cz/graf/graf.php, podle mě budou špatně ty podmínky, ale nevím jak to napsat jinak |
||
Joker Profil |
#5 · Zasláno: 20. 9. 2007, 17:45:34
pepepa
Vypisuje to "Akce skončila". Jak sepsalo v původním vláknu, nechat si vypsat hodnoty proměnných a z toho se zjistí, kde je chyba. |
||
nightfish Profil |
#6 · Zasláno: 20. 9. 2007, 17:46:55
( $d_sec = 0 )
tady má být == jinak to, že ti to píše akce skončila je správně, protože opravdu skončila... |
||
pepepa Profil * |
#7 · Zasláno: 20. 9. 2007, 17:50:55
nightfish
kde konkretne to ma byt?? |
||
nightfish Profil |
#8 · Zasláno: 20. 9. 2007, 17:55:49
kde konkretne to ma byt??
http://www.linuxsoft.cz/article.php?id_article=188 |
||
pepepa Profil * |
#9 · Zasláno: 20. 9. 2007, 18:02:03
nightfish
Dobře, to jsem opravil, ale když si změním čas, tak že akce bude teprve probíhat, vypsaný text je stále akce skončila...?? |
||
pepepa Profil * |
#10 · Zasláno: 20. 9. 2007, 18:22:04
tak už jsem to lokalizoval, funkční kód je zde (třeba se někomu někdy hodí) a děkuji všem za pomoc
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> |
||
Časová prodleva: 17 let
|
0