div onzichtbaar als timer op nul staat

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Pagina: « vorige 1 2

Mc music

mc music

08/02/2016 00:58:49
Quote Anchor link
Hoi,

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
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
SEC_TO_TIME(TIMESTAMPDIFF(SECOND, now(), timer)) AS countdowntimer

Dit geef bv 00:00:10 weer

Het volgende script heb ik gevonden.
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
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>


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.
 
PHP hulp

PHP hulp

19/04/2024 12:24:17
 
Randy vsf

Randy vsf

08/02/2016 09:03:52
Quote Anchor link
Nogmaals, waarom kijk je niet voor een javascript oplossing? je zegt PHP gaat makkelijker, maar je zit hier al behoorlijk lang op. Je kan php variabelen gebruiken in javascript (de endtime met strtotime()). en met new Date.getTime() krijg je een timestamp, als je die deelt door 1000 heb je het aantal seconden. Dan ga je om de seconde checken of de tijden matchen, en als ze matchen verberg je de div.
Gewijzigd op 08/02/2016 09:12:21 door Randy vsf
 
Mc music

mc music

08/02/2016 21:58:48
Quote Anchor link
Beste Randy,

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)
PHP script in nieuw venster Selecteer het PHP script
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
<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>
 

Pagina: « vorige 1 2



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.