div onzichtbaar als timer op nul staat
Ik heb de zaken hier even overlopen en ben op zoek gegaan naar een betere oplossing.
vanuit een MSQL query heb ik volgende.
http://www.tutorialspoint.com/sql/sql-date-functions.htm
Dit geef bv 00:00:10 weer
Het volgende script heb ik gevonden.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
<div id="hms"><?php echo $row_Recordset["countdowntimer"]; ?></div>
<div id="divweg">Deze div moet weg als de timer op nul staat</div>
<script type="text/javascript">
function count() {
var startTime = document.getElementById('hms').innerHTML;
var pieces = startTime.split(":");
var time = new Date(); time.setHours(pieces[0]);
time.setMinutes(pieces[1]);
time.setSeconds(pieces[2]);
var timedif = new Date(time.valueOf() - 1000);
var newtime = timedif.toTimeString().split(" ")[0];
document.getElementById('hms').innerHTML=newtime;
setTimeout(count, 1000);
}
count();
</script>
<div id="divweg">Deze div moet weg als de timer op nul staat</div>
<script type="text/javascript">
function count() {
var startTime = document.getElementById('hms').innerHTML;
var pieces = startTime.split(":");
var time = new Date(); time.setHours(pieces[0]);
time.setMinutes(pieces[1]);
time.setSeconds(pieces[2]);
var timedif = new Date(time.valueOf() - 1000);
var newtime = timedif.toTimeString().split(" ")[0];
document.getElementById('hms').innerHTML=newtime;
setTimeout(count, 1000);
}
count();
</script>
Enig probleem het script stopt niet op 00:00:00 en nog beter zou een tekst 'einde countdowntimer' zijn.
Ik heb al veel gezocht om dan ook de div 'divweg' op hide te zetten maar dat lukt mij niet.
Iemand enig idee.
Gewijzigd op 08/02/2016 09:12:21 door Randy vsf
Eerst en vooral werk ik met MQSQL en PHP het liefst.
Probleem in dit geval een countdowntimer waarvan de pagina geen refresh heeft. Dit kan je onmogelijk oplossing met php. Mijn eerst voorstel en uw opmerking was terecht te veel requests die dan ook totaal onnodig zijn.
Ik zoek even verder op en merk dat ik in mijn MSQL een oplossing heeft om de tijd in 00:00:00 weer te geven (enkel de seconden weergeven lukt ook) daarvoor gebruik ik MSQL wat mijn voorkeur is die het uitrekent en php om het resultaat weer te geven.
Ik zoek online verder naar een JAVASCRIPT om dit resultaat als een countdowntimer te gebruiken.
Deze vind ik, alleen met de nodige problemen omdat ik geen javascript ken en ook voor alle duidelijkheid zo min mogelijk wens te gebruiken. Dus uw 'maar je zit hier al behoorlijk lang op' komt er omdat er geen oplossing komt voor het JAVASCRIPT. De hulp van Ariën was leuk maar dit kan enkel met tekstbestanden en ik gebruikte html pagina.
Daarvoor bestaan er forums zoals deze om met dit probleem voor te leggen en hopelijk tot een oplossing te komen.
Blijkbaar komt de oplossing niet voor mijn probleem, ja dan zoeken we gewoon verder man.
Groeten,
Toevoeging op 08/02/2016 23:58:34:
Ondertussen gevonden wat ik zocht.
Zet de code even hier voor de mensen die ook zoeen oplossing zoeken.
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
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
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
<div id="javascript_countdown_time"></div>
<div id="divweg">div mag weg</div>
<script>
var javascript_countdown = function () {
var time_left = 10; //number of seconds for countdown
var output_element_id = 'javascript_countdown_time';
var keep_counting = 1;
var no_time_left_message = 'einde van de bieding';
function countdown() {
if(time_left < 2) {
keep_counting = 0;
}
time_left = time_left - 1;
}
function add_leading_zero(n) {
if(n.toString().length < 2) {
return '0' + n;
} else {
return n;
}
}
function format_output() {
var hours, minutes, seconds;
seconds = time_left % 60;
minutes = Math.floor(time_left / 60) % 60;
hours = Math.floor(time_left / 3600);
seconds = add_leading_zero( seconds );
minutes = add_leading_zero( minutes );
hours = add_leading_zero( hours );
return hours + ':' + minutes + ':' + seconds;
}
function show_time_left() {
document.getElementById(output_element_id).innerHTML = format_output();//time_left;
}
function no_time_left() {
document.getElementById(output_element_id).innerHTML = no_time_left_message;
document.getElementById("divweg").style.display = "none";
}
return {
count: function () {
countdown();
show_time_left();
},
timer: function () {
javascript_countdown.count();
if(keep_counting) {
setTimeout("javascript_countdown.timer();", 1000);
} else {
no_time_left();
}
},
//Kristian Messer requested recalculation of time that is left
setTimeLeft: function (t) {
time_left = t;
if(keep_counting == 0) {
javascript_countdown.timer();
}
},
init: function (t, element_id) {
time_left = t;
output_element_id = element_id;
javascript_countdown.timer();
}
};
}();
//time to countdown in seconds, and element ID
javascript_countdown.init(10, 'javascript_countdown_time');
</script>
<div id="divweg">div mag weg</div>
<script>
var javascript_countdown = function () {
var time_left = 10; //number of seconds for countdown
var output_element_id = 'javascript_countdown_time';
var keep_counting = 1;
var no_time_left_message = 'einde van de bieding';
function countdown() {
if(time_left < 2) {
keep_counting = 0;
}
time_left = time_left - 1;
}
function add_leading_zero(n) {
if(n.toString().length < 2) {
return '0' + n;
} else {
return n;
}
}
function format_output() {
var hours, minutes, seconds;
seconds = time_left % 60;
minutes = Math.floor(time_left / 60) % 60;
hours = Math.floor(time_left / 3600);
seconds = add_leading_zero( seconds );
minutes = add_leading_zero( minutes );
hours = add_leading_zero( hours );
return hours + ':' + minutes + ':' + seconds;
}
function show_time_left() {
document.getElementById(output_element_id).innerHTML = format_output();//time_left;
}
function no_time_left() {
document.getElementById(output_element_id).innerHTML = no_time_left_message;
document.getElementById("divweg").style.display = "none";
}
return {
count: function () {
countdown();
show_time_left();
},
timer: function () {
javascript_countdown.count();
if(keep_counting) {
setTimeout("javascript_countdown.timer();", 1000);
} else {
no_time_left();
}
},
//Kristian Messer requested recalculation of time that is left
setTimeLeft: function (t) {
time_left = t;
if(keep_counting == 0) {
javascript_countdown.timer();
}
},
init: function (t, element_id) {
time_left = t;
output_element_id = element_id;
javascript_countdown.timer();
}
};
}();
//time to countdown in seconds, and element ID
javascript_countdown.init(10, 'javascript_countdown_time');
</script>