OVH Cloud OVH Cloud

Compte à rebours et heure exacte

9 réponses
Avatar
dam.courriel
Bonjour =E0 tous,

je me permet ce petit message, car j'ai r=E9cup=E9rer ce script de compte
=E0 rebours sur le web, mais visiblement il se base sur l'heure et le
jour de l'ordinateur et non sur la v=E9ritable heure (en gros si l'heure
de l'ordinateur est mal r=E9gl=E9e, le compteur est d=E9cal=E9).

J'aimerais donc savoir s'il existe un moyen pour parer =E0 ce pb.

Cordialement,

DDD

---------------------------------------------------------------------------=
--------

<script language=3D"JavaScript1.2">


function setcountdown(theyear,themonth,theday,thehour,themin,thesec){
yr=3Dtheyear;mo=3Dthemonth;da=3Dtheday;hr=3Dthehour;min=3Dthemin;sec=3Dthes=
ec
}


// 1=B0) Configurez la date dans le futur dans le format ANNEE, MOIS,
JOUR, HEURES sur 24h (0=3Dminuit,23=3D11pm), MINUTES, SECONDES
setcountdown(2007,3,31,21,00,00)

// 2=B0) Changez les deux textes ci-dessous. Le premier pour annoncer
l'=E9v=E8nement, le second qui s'affichera =E0 la fin du compte =E0 rebours.
var occasion=3D""
var message_on_occasion=3D"C'est aujourd'hui !"

// 3=B0) Configurez ci-dessous 5 variables pour la largeur, hauteur, la
couleur de l'arri=E8re plan, et le style du texte du champ
var countdownwidth=3D'355px' // ou une valeur en % comme var
countdownwidth=3D'95%'
var countdownheight=3D''
var countdownbgcolor=3D'#' // ou une couleur en texte comme :
lightyellow
var opentags=3D''
var closetags=3D''

////////// NE RIEN EDITER CI-DESSOUS //////////////////

var montharray=3Dnew
Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","De=
c")
var crosscount=3D''

function start_countdown(){
if (document.layers)
document.countdownnsmain.visibility=3D"show"
else if (document.all||document.getElementById)
crosscount=3Ddocument.getElementById&&!document.all?
document.getElementById("countdownie") : countdownie
countdown()
}

if (document.all||document.getElementById)
document.write('<span id=3D"countdownie" style=3D"width:'+countdownwidth
+'; background-color:'+countdownbgcolor+'"></span>')

window.onload=3Dstart_countdown


function countdown(){
var today=3Dnew Date()
var todayy=3Dtoday.getYear()
if (todayy < 1000)
todayy+=3D1900
var todaym=3Dtoday.getMonth()
var todayd=3Dtoday.getDate()
var todayh=3Dtoday.getHours()
var todaymin=3Dtoday.getMinutes()
var todaysec=3Dtoday.getSeconds()
var todaystring=3Dmontharray[todaym]+" "+todayd+", "+todayy+" "+todayh
+":"+todaymin+":"+todaysec
futurestring=3Dmontharray[mo-1]+" "+da+", "+yr+" "+hr+":"+min+":"+sec
dd=3DDate.parse(futurestring)-Date.parse(todaystring)
dday=3DMath.floor(dd/(60*60*1000*24)*1)
dhour=3DMath.floor((dd%(60*60*1000*24))/(60*60*1000)*1)
dmin=3DMath.floor(((dd%(60*60*1000*24))%(60*60*1000))/(60*1000)*1)
dsec=3DMath.floor((((dd%(60*60*1000*24))%(60*60*1000))%(60*1000))/
1000*1)
//if on day of occasion
if(dday<=3D0&&dhour<=3D0&&dmin<=3D0&&dsec<=3D1&&todayd=3D=3Dda){
if (document.layers){
document.countdownnsmain.document.countdownnssub.document.write(opentags
+message_on_occasion+closetags)
document.countdownnsmain.document.countdownnssub.document.close()
}
else if (document.all||document.getElementById)
crosscount.innerHTML=3Dopentags+message_on_occasion+closetags
return
}
//if passed day of occasion
else if (dday<=3D-1){
if (document.layers){
document.countdownnsmain.document.countdownnssub.document.write(opentags
+"L'=E9v=E8nement est d=E9j=E0 arriv=E9 ! "+closetags)
document.countdownnsmain.document.countdownnssub.document.close()
}
else if (document.all||document.getElementById)
crosscount.innerHTML=3Dopentags+"L'=E9v=E8nement est d=E9j=E0 arriv=E9 !
"+closetags
return
}
//else, if not yet
else{
if (document.layers){
document.countdownnsmain.document.countdownnssub.document.write("Dans
"+opentags+dday+ " jours, "+dhour+" heures, "+dmin+" minutes, et "+dsec
+" secondes "+occasion+closetags)
document.countdownnsmain.document.countdownnssub.document.close()
}
else if (document.all||document.getElementById)
crosscount.innerHTML=3D"Dans "+opentags+dday+ " jours, "+dhour+" heures,
"+dmin+" minutes, et "+dsec+" secondes "+occasion+closetags
}
setTimeout("countdown()",1000)
}
</script>
-----------------------------------------------------------------------

9 réponses

Avatar
O.L.
avait écrit le 18/02/2007 :
Bonjour à tous,

je me permet ce petit message, car j'ai récupérer ce script de compte
à rebours sur le web, mais visiblement il se base sur l'heure et le
jour de l'ordinateur et non sur la véritable heure (en gros si l'heure
de l'ordinateur est mal réglée, le compteur est décalé).

J'aimerais donc savoir s'il existe un moyen pour parer à ce pb.


Le seul moyen est de faire intervenir un script PHP qui te donnera
l'heure du serveur (la bonne, en général).

Cf. fonction time()

Ex :
<script>
var timestamp = <?=time()?>;
...

Avatar
ASM
avait écrit le 18/02/2007 :
Bonjour à tous,

ce script visiblement il se base sur l'heure et le
jour de l'ordinateur et non sur la véritable heure


Le seul moyen est de faire intervenir un script PHP qui te donnera
l'heure du serveur (la bonne, en général).


Non, il y a aussi les SSI qui pourront donner l'heure du serveur ;-)

<script type="text/javascript">

var timestamp = "<!--#echo var="DATE_LOCAL" -->";
alert(timestamp);
...

(la page en SSI devrait être suffixée en shtml : date.shtml )

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé


Avatar
DamDamDeo
On 18 fév, 17:25, ASM
wrote:

avait écrit le 18/02/2007 :
Bonjour à tous,

ce script visiblement il se base sur l'heure et le
jour de l'ordinateur et non sur la véritable heure


Le seul moyen est de faire intervenir un script PHP qui te donnera
l'heure du serveur (la bonne, en général).


Non, il y a aussi les SSI qui pourront donner l'heure du serveur ;-)

<script type="text/javascript">

var timestamp = "<!--#echo var="DATE_LOCAL" -->";
alert(timestamp);
...

(la page en SSI devrait être suffixée en shtml : date.shtml )

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé



Merci à vous pour vos (très rapides) réponses,

Coordialement,

DDD



Avatar
Pierre Goiffon
ASM wrote:
Le seul moyen est de faire intervenir un script PHP qui te donnera
l'heure du serveur (la bonne, en général).


Non, il y a aussi les SSI qui pourront donner l'heure du serveur ;-)


Quelque soit le moyen utilisé, pourquoi l'heure du serveur serait
meilleure ?
Mettons une société française qui héberge ses serveurs aux Etats Unis et
dont les clients sont à Singapour... Quelle est la "bonne heure" à votre
avis ?


Avatar
O.L.
Il se trouve que ASM a formulé :
avait écrit le 18/02/2007 :
Bonjour à tous,

ce script visiblement il se base sur l'heure et le
jour de l'ordinateur et non sur la véritable heure


Le seul moyen est de faire intervenir un script PHP qui te donnera l'heure
du serveur (la bonne, en général).


Non, il y a aussi les SSI qui pourront donner l'heure du serveur ;-)

<script type="text/javascript">

var timestamp = "<!--#echo var="DATE_LOCAL" -->";
alert(timestamp);
...

(la page en SSI devrait être suffixée en shtml : date.shtml )


Berk les SSI :-p



Avatar
ASM

Quelque soit le moyen utilisé, pourquoi l'heure du serveur serait
meilleure ?
Mettons une société française qui héberge ses serveurs aux Etats Unis et
dont les clients sont à Singapour... Quelle est la "bonne heure" à votre
avis ?


Au moins tous les visiteurs auront la même heure.
Au moins, on a une base commune pour en faire qque chose.

Que proposes-tu en alternative ?

--
Stephane Moriaux et son (moins) vieux Mac déjà dépassé

Avatar
Pierre Goiffon
ASM wrote:
Quelque soit le moyen utilisé, pourquoi l'heure du serveur serait
meilleure ?
Mettons une société française qui héberge ses serveurs aux Etats Unis
et dont les clients sont à Singapour... Quelle est la "bonne heure" à
votre avis ?


Au moins tous les visiteurs auront la même heure.
Au moins, on a une base commune pour en faire qque chose.

Que proposes-tu en alternative ?


Tout dépend du besoin, qui n'a pas été plus précisé que "afficher un
compte à rebours". Suivant ce qu'il faut faire on pourra avoir à veiller
aux problématiques de fuseaux horaires, en plus des traditionnels
formats de dates (...)


Avatar
kurtz le pirate
In article ,
O.L. wrote:

Berk les SSI :-p


tu peux étayer ta réponse ?



--
klp

Avatar
O.L.
kurtz le pirate a utilisé son clavier pour écrire :
In article ,
O.L. wrote:

Berk les SSI :-p


tu peux étayer ta réponse ?


Les SSI c'est pas beau, personne les utilise (ou presque) :p
Vive le PHP !
:D

(Ca c'est de l'argumentation ! ^^)