omzetten
ik wil graag procentbar voor taken waar ik mee bezig ben. Procentueel moet hij dan laten zien hoe ver ik ben in datum.
Mijn bedoeling is meer dit:
Wat is het vandaag? Wanneer ben je gestart? Wat Is de einddatum? kijk hoeveel dagen er in totaal zijn en kijk hoeveel dagen erover blijven. Percentage = overgebleven dagen / totaledagen * 100 = percentage.
Maar hoe moet ik dat hieronder formuleren tot nu heb ik dit werkend gekregen.
Mijn bedoeling is meer dit:
Wat is het vandaag? Wanneer ben je gestart? Wat Is de einddatum? kijk hoeveel dagen er in totaal zijn en kijk hoeveel dagen erover blijven. Percentage = overgebleven dagen / totaledagen * 100 = percentage.
Maar hoe moet ik dat hieronder formuleren tot nu heb ik dit werkend gekregen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<?php
$today = 02/27/2012;
$start = 02/20/2012;
$end = 03/01/2012;
$value = 78;
$max = 100;
$scale = 8.9;
// Get Percentage out of 100
if ( !empty($max) ) { $percent = ($value * 100) / $max; }
else { $percent = 0; }
// Limit to 100 percent (if more than the max is allowed)
if ( $percent > 100 ) { $percent = 100; }
?>
<div class="percentbar" style="width:<?php echo round(100 * $scale); ?>px;">
<div style="width:<?php echo round($percent * $scale); ?>px;"></div></div>
</div>
Percentage: <?php echo $percent; ?>%
$today = 02/27/2012;
$start = 02/20/2012;
$end = 03/01/2012;
$value = 78;
$max = 100;
$scale = 8.9;
// Get Percentage out of 100
if ( !empty($max) ) { $percent = ($value * 100) / $max; }
else { $percent = 0; }
// Limit to 100 percent (if more than the max is allowed)
if ( $percent > 100 ) { $percent = 100; }
?>
<div class="percentbar" style="width:<?php echo round(100 * $scale); ?>px;">
<div style="width:<?php echo round($percent * $scale); ?>px;"></div></div>
</div>
Percentage: <?php echo $percent; ?>%
Gewijzigd op 27/02/2012 02:28:51 door Gijs van Moosdijk
Ik heb geen idee wat je aan het doen bent, maar:
$today = 02/27/2012;
geeft $today = 3,6816140195861865841985126279361e-5;
$today = 02/27/2012;
geeft $today = 3,6816140195861865841985126279361e-5;
ik wil ongeveer hetzelfde als dit http://blog.fabianpiau.com/en/2011/06/12/date-progress-bar-using-jquery/
maar dan volledig in php
maar dan volledig in php
Zoals SanThe zegt werkt je datum toewijzing niet omdat dit letterlijk de getallen deelt door het daarop volgende getal. Wil je dit als string opslaan moeten er quotes omheen. Daarnaast zou ik dan met die datums en bijhorende date functies uitrekenen hoeveel dagen dit zijn, daarna uitrekenen hoeveel dagen er voorbij zijn, en dan lijkt mij het invullen van een percentage niet meer zo moeilijk.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
2
3
4
5
6
7
8
9
10
11
12
13
14
15
Merk op, er wordt niets gecontroleerd ... fout gebruikt levert foute resultaten.
Gewijzigd op 27/02/2012 11:51:44 door Kris Peeters
ow ff lezen...
Toevoeging op 27/02/2012 11:58:04:
Kris ik krijg een Fatal error: Call to undefined function progresstime() dat is vreemd...
Toevoeging op 27/02/2012 11:58:04:
Kris ik krijg een Fatal error: Call to undefined function progresstime() dat is vreemd...
Gewijzigd op 27/02/2012 11:52:04 door Gijs van Moosdijk
Omdraaien, de functie aanroep na de functie zelf zetten.
Jurgen B op 27/02/2012 11:58:59:
Omdraaien, de functie aanroep na de functie zelf zetten.
Geeft dit soms problemen in php?
Is dat een instelling die anders staat of zo?
Normaal maakt apache daar geen probleem van.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
<?php
$now = date("m-d-Y");
$start = "02-01-2012";
$stop = "02-27-2012";
$value = 10;
$max = 100;
$scale = 8.9;
function progressTime($start, $stop, $now) {
$a = strtotime($start);
$b = strtotime($stop);
$c = strtotime($now);
$d = ($b - $a);
$e = ($c - $a);
return (($d / $e) * 100);
}
$percent = progressTime($start, $stop, $now);
if ( !empty($max) ) { $percent = ($value * 100) / $max; }
else { $percent = 0; }
// Limit to 100 percent (if more than the max is allowed)
if ( $percent > 100 ) { $percent = 100; }
?>
$now = date("m-d-Y");
$start = "02-01-2012";
$stop = "02-27-2012";
$value = 10;
$max = 100;
$scale = 8.9;
function progressTime($start, $stop, $now) {
$a = strtotime($start);
$b = strtotime($stop);
$c = strtotime($now);
$d = ($b - $a);
$e = ($c - $a);
return (($d / $e) * 100);
}
$percent = progressTime($start, $stop, $now);
if ( !empty($max) ) { $percent = ($value * 100) / $max; }
else { $percent = 0; }
// Limit to 100 percent (if more than the max is allowed)
if ( $percent > 100 ) { $percent = 100; }
?>
kom er nog niet helemaal uit. idd kris mijn server draait php 5.2 apache weet ik niet welke versie het draait maar het omdraaien van de function leverde een beter resultaat op.
Hmm inderdaad nu je het zegt zou dit niet moeten uitmaken. Wat me wel opvalt is dat je foutmelding progresstime() aangeeft en Kris het voorbeeld met progressTime heeft. Ik weet niet in hoeverre je de voorbeeld code hebt gekopieerd maar misschien even de functienaam dubbelchecken op hoofdletters? In de aanmaak en de aanroep.
... de plaats van de functie-definitie even buiten beschouwing ...
$value = 78;
$max = 100;
$scale = 8.9;
Waar slaat dit op?
Wat is je bedoeling precies?
$value = 78;
$max = 100;
$scale = 8.9;
Waar slaat dit op?
Wat is je bedoeling precies?
value hier komt het percentage getal
max hij mag een maximale waarde opgeven van 100
scale de bar is 890 pixels dus hij moet maal 8.9 doen in het vullen van de bar
Toevoeging op 27/02/2012 13:53:50:
weet iemand waar het fout gaat?
max hij mag een maximale waarde opgeven van 100
scale de bar is 890 pixels dus hij moet maal 8.9 doen in het vullen van de bar
Toevoeging op 27/02/2012 13:53:50:
weet iemand waar het fout gaat?
Ik krijg deze foutmelding als ik de script van Kris aanhoudt:
Fatal error: Cannot redeclare progresstime() (previously declared in
Hoe is dit mogelijk? Ik heb wel de function boven gezet
Toevoeging op 28/02/2012 16:42:23:
Hij staat dan wel in een database van queries... zou het zo kunnen zijn dat hij bij de volgende zegt: ja die had ik net al gedaan?
Fatal error: Cannot redeclare progresstime() (previously declared in
Hoe is dit mogelijk? Ik heb wel de function boven gezet
Toevoeging op 28/02/2012 16:42:23:
Hij staat dan wel in een database van queries... zou het zo kunnen zijn dat hij bij de volgende zegt: ja die had ik net al gedaan?
Als ik alleen de code van Kris gebruik, krijg ik geen foutmelding.
De foutmelding is incompleet. Daar staat nog een (bestandsnaam en) regelnummer achter.
Vertaal de foutmelding: De functie al eerder aangeroepen.
De foutmelding is incompleet. Daar staat nog een (bestandsnaam en) regelnummer achter.
Vertaal de foutmelding: De functie al eerder aangeroepen.
gevonden; ik heb de function into the head geplaatst nu krijg ik geen foutmelding... nu moet ik hem werkend zien te krijgen.
Toevoeging op 28/02/2012 16:49:11:
Dank obelix en idefix voor je snelle reactie!... maar omdat ik hem in de sql query heb staan roept hij zichzelf vaker terug... dat wilt php niet heb ik nu geleerd :)
Toevoeging op 28/02/2012 16:59:27:
Nee... ik heb krijg het nog steeds niet werkend...
ik probeer hetzelfde als dit te doen:
http://blog.fabianpiau.com/en/2011/06/12/date-progress-bar-using-jquery/
maar het wil maar niet werken..
ik mis Jasper :(
Toevoeging op 28/02/2012 16:49:11:
Dank obelix en idefix voor je snelle reactie!... maar omdat ik hem in de sql query heb staan roept hij zichzelf vaker terug... dat wilt php niet heb ik nu geleerd :)
Toevoeging op 28/02/2012 16:59:27:
Nee... ik heb krijg het nog steeds niet werkend...
ik probeer hetzelfde als dit te doen:
http://blog.fabianpiau.com/en/2011/06/12/date-progress-bar-using-jquery/
maar het wil maar niet werken..
ik mis Jasper :(




