Autor Zpráva
pepepa
Profil *
Ahoj, chtěl jsem se zeptat, jak zkombinovat PHP s CSS. Potřeboval bych, aby v tomhle kódu :
<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: #333;
height: 2em;
line-height: 2em;
}
.graph .bar span { position: absolute; left: 1em; }
</style>
<div class="graph">
<strong class="bar" style="width: 24%;">24%</strong>
</div>
byla část 24% proměnná v php. Prostě potřebuju udělat graf, který bude zjišťovat kolik uběhlo procent od začátku nějaké akce (něco jako je na seznamu u TV programu). Ještě by tam mohlo být před tím, než akce začne něco jako do akce zbývá ... minut (resp. hodin atp.) A ještě třeba po najetí na ten graf by se zobrazilo do konce zbývá ... minut (resp. hodin atp.).Děkuji všem
Str4wberry
Profil
pepepa
Ale to je spíš matematika než PHP :)
Joker
Profil
No a v čem je problém?
<div class="graph">
<?php
echo('<strong class="bar" style="width: '.$procenta.'%;">'.$procenta.'%</strong>'
?>
</div>

edit: odpověď na "Potřeboval bych, aby v tomhle kódu :(...) byla část 24% proměnná v php."
pepepa
Profil *
Str4wberry Matematika to sice je, ale ta není mou stinnou stránkou... Bohužel
DJ Miky
Profil
Matematika to sice je, ale ta není mou stinnou stránkou... Bohužel

Asi jsi měl na mysli silnou, ale to je jedno.


Procenta vypočítáš jednoduše:
$procenta=round(($uplynule_minuty * 100) / $celkove_minuty);

$uplynule_minuty = počet minut, které uplynuly od začátku programu
$celkove_minuty = celková doba trvání programu
pepepa
Profil *
tak už jsem s vaší pomocí dal něco dohromady :
<!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
print "probíhá <strong class="bar" style="width: '.$procenta.'%;">'.$procenta.'%</strong>";
else // akce skoncila
print "Akce skončila.";
?>
</div>
</body>
</html>
Ale nefunguje to, určitě bude problém v těch podmínkách. Jde mi o to, aby to před tím, než akce proběhne vypsalo Do akce zbývá ... (rozdíl času), potom když probíhá, tak aby to vypsalo probíhá + graf a poslední podmínka (po skončení akce) vypsat, že akce skončila... Omlouvám se vám, jsem fakt lama a dneska mi to absolutně nepálí. Dík
Str4wberry
Profil
pepepa
Tak si zkus nechat vypsat nějaké proměnné a snadno najdeš, kde je chyba.

Vaše odpověď

Mohlo by se hodit

Odkud se sem odkazuje


Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm: