Countdown fra 2 date in ASP

tatiana_s

Utente Attivo
15 Gen 2004
48
0
0
www.smartsas.it
Ciao a tutti...

Sto cercando di realizzare un Countdown che tramite la differenza dell'ora del server attuale e la data di scadenza (impostata da me su database access), mi crei l'effetto conto alla rovescia di giorni, ore, minuti e secondi.
Mi hanno suggerito questo:
Codice:
<script>
var mancanti=<%=secondi_mancanti%>; 
function countdown() {
  if(mancanti>0) {
    mancanti--;
    secondi = mancanti;
    ore = parseInt(secondi/3600);
    secondi = secondi - (ore * 3600);
    minuti = parseInt(secondi/60);
    secondi = secondi - (minuti * 60);
    messaggio = "Manca "+ore+":"+String(100+minuti).substr(1)+":"+String(100+secondi).substr(1)+" al termine"
    document.getElementById("div_cnt").innerHTML = messaggio;
    setTimeout("countdown()",1000);
  }
}
window.onload=countdown;
</script>
Ma nn ho capito come utilizzarlo...
Sapreste aiutarmi???
Poi la data di scadenza è possibile che lo script la prelevi direttamente dal database???

Grazie a tutti
 
Ciao a tutti...

Codice:
<script>
var mancanti="10000"; 
function countdown() {
  if(mancanti>0) {
    mancanti--;
    secondi = mancanti;
    ore = parseInt(secondi/3600);
    secondi = secondi - (ore * 3600);
    minuti = parseInt(secondi/60);
    secondi = secondi - (minuti * 60);
    messaggio = "Manca "+ore+":"+String(100+minuti).substr(1)+":"+String(100+secondi).substr(1)+" al termine"
    document.getElementById("div_cnt").innerHTML = messaggio;
    setTimeout("countdown()",1000);
  }
}
window.onload=countdown;
</script>
<div id="div_cnt"></div>

Ti basta aggiungere il div "div_cnt" nella pagina e impostare i secondi in "var mancanti"es "10000"...nel db devi inserire la data in formato Now() se ti interessa anche l'orario o date() e manipolarla con datediff che ti restituiesce i secondi...il response sempre in "var mancanti"
:byebye::byebye::byebye:
 
Ti basta aggiungere il div "div_cnt" nella pagina e impostare i secondi in "var mancanti"es "10000"...nel db devi inserire la data in formato Now() se ti interessa anche l'orario o date() e manipolarla con datediff che ti restituiesce i secondi...il response sempre in "var mancanti"
:byebye::byebye::byebye:

Ok, perfetto, ora ho la certezza che questo script funzioni...

Quindi se ho var mancanti=<%=secondi_mancanti%>
Devo "creare" datediff che mi restituiesce i secondi... e si compila il response sempre in "var mancanti".

Allora io nella DB, ho già creato 2 colonne: InizioOfferta e FineOfferta

Nella pagina dove ho lo script, avevo creato questa sql:
SQLOfferte = " SELECT ID FROM Prodotti WHERE Offerta = True AND (GiacenzaInfinita OR Giacenza > 0) AND (InizioOfferta <= Date()) AND (FineOfferta >= Now()) AND Cancellato = False "

Dove appunto mi fa vedere SOLO le offerte comprese nella data indiacata da me.

Ora mi potete aiutare a creare la differenza delle date???
Ma la differenza tra la data ed ora del server con la data ed ora di FINEOfferta

:)

Grazie :fonzie:
 
Allora sto provando a fare in questo modo

<%
DateDiff("S", "Now()", "FineOfferta")
end if
%>

Sbaglio???

:confused:

mi restituisce questo errore
Codice:
Microsoft VBScript compilation  error '800a0414'

Cannot use parentheses when calling a Sub

/include/inc_offerte_centro.asp, line 20

DateDiff("S", "Now()", "FineOfferta")
-------------------------------------^
 
Ok, dovevo scrivere così:
Codice:
<%=DateDiff("S", Now(), FineOfferta)%>

e non mi esce l'errore, ma mi posta quetso numero:
-3478416066

cosa devo fare :confused:
 
Ok, come nn detto, adesso appare... dopo tantissimo tempo ma appare ...

un'altro step avanti.

Adesso mi potete aiutare a capire xchè mi esce questo numero gigantesco???

la data del server è: 22/03/2010 14:05:00
la data fineofferta è:23/03/2010 10.30.00

xchè mi esce questo numero così enorme???:confused:
 
Ok, scusate, ma nn so proprio come risolvere, nel frattempo provo e riprovo e vi posto...
Fatto ennesima modifica:
Codice:
<script>
var mancanti=<%=DateDiff("s", FineOfferta, Now())%>;
function countdown() {
  if(mancanti>0) {
    mancanti--;
    secondi = mancanti;
	giorni = parseInt(secondi/86400000);
    secondi = secondi - (giorni * 86400000);
    ore = parseInt(secondi/3600000);
    secondi = secondi - (ore * 3600000);
    minuti = parseInt(secondi/60000);
    secondi = secondi - (minuti * 60000);
    secondi = parseInt(secondi/1000);
    secondi = secondi - (minuti * 1000);
	
	messaggio ='Mancano '+giorni+' giorni '+ore+' ore '+minuti+' min '+secondi+' sec';
    document.getElementById("div_cnt").innerHTML = messaggio;
    setTimeout("countdown()",1000);
  }
}
window.onload=countdown;
</script>
ma esce sempre un numero enormeeeeeeee:

mancano 40 giorni 6 ore 13 min - 12950 sec :eek:

La data scadenza offerte è 22/03/2010 23.59.00

:dipser:
 

Discussioni simili