omzetten
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
$today = 02/27/2012;
geeft $today = 3,6816140195861865841985126279361e-5;
http://blog.fabianpiau.com/en/2011/06/12/date-progress-bar-using-jquery/
maar dan volledig in php
ik wil ongeveer hetzelfde als dit 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
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.
$value = 78;
$max = 100;
$scale = 8.9;
Waar slaat dit op?
Wat is je bedoeling precies?
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?
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?
De foutmelding is incompleet. Daar staat nog een (bestandsnaam en) regelnummer achter.
Vertaal de foutmelding: De functie al eerder aangeroepen.
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 :(