archi57
Messages postés30Date d'inscriptiondimanche 10 mars 2013StatutMembreDernière intervention11 novembre 2017
-
13 nov. 2006 à 18:40
archi57
Messages postés30Date d'inscriptiondimanche 10 mars 2013StatutMembreDernière intervention11 novembre 2017
-
15 nov. 2006 à 20:09
Bjr le forum,
j'aimerai modifier le script suivant de facon a ne faire apparaitre que "la date et le message" à venir et non la date du jour comme actuellement !!
mais je ne vois pas comment procéder ??
pouvez-vous m'aider ?
merci d'avance
bye
<html>
<head>
<SCRIPT LANGUAGE="JavaScript">
<!--
var days = new Array();
var msgs = new Array();
days[0] = "november 12, 2006";
msgs[0] = "Sarrebourg contre Hangwiller à 14h";
days[1] = "november 20, 2006";
msgs[1] = "Niderviller contre Sarrebourg à 14h";
days[2] = "December 26, 2006";
msgs[2] = "Championnat Minimes à 14h au Cosec";
var months = new Array("",
"janvier", "février", "mars", "avril", "mai", "juin",
"juillet", "août", "septembre", "octobre", "novembre", "décembre"
);
var today = new Date(); // today
var mon = months[today.getMonth() + 1]; // month
var day = today.getDate(); // day
var year = y2k(today.getYear()); // year
var jour = today.getDay();
switch(jour){
case 1 :
jour1 ="lundi"
break;
case 2 :
jour1 ="mardi"
break;
case 3 :
jour1 ="mercredi"
break;
case 4 :
jour1 ="jeudi"
break;
case 5 :
jour1 ="vendredi"
break;
case 6 :
jour1 ="samedi"
break;
case 7 :
jour1 ="dimanche"
break;
}
function dateMsg() {
for (i = 0; i < days.length; i++) {
tempdate = new Date(days[i]);
tempmonth = months[tempdate.getMonth() + 1];
tempday = tempdate.getDate();
tempyear = y2k(tempdate.getYear());if (year tempyear && mon tempmonth && day == tempday)
return(""+ jour1 + " " + day + " " + mon + " " + year + ": "+ msgs[i]); // returns day message
}
return(""+ jour1 + " " + day + " " + mon + " " + year + ":"); // returns default
}
// Y2K Fix Function
function y2k(year) {
if (year < 2000)
year = year + 1900;
return year;
}
// End -->
</script>
</head>
<script>document.write(dateMsg());</script>
</html>
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 14 nov. 2006 à 18:32
Excellent PetroleTeam, té un pro
...merci mais PetoleTeam tout court est suffisant, bon bref, ce qui suit devrait répondre à ta demande...
//----------------
function dateMsg(){
var Chaine =""; // Initialisation Chaine vide
var Count =0; // Compteur de message
var szMsg;
var szToday;
var szDemain;
var Date_Ref = new Date(); // Récup date Aujourdh'ui
//-- Formatage Date du jour
szToday = Format_Date( Date_Ref);
//-- Récup Date demain, on ajoute 1 jour et on laisse faire javascript
Date_Ref.setDate(Date_Ref.getDate()+1);
//-- Formatage Date de Demain
szDemain = Format_Date( Date_Ref);
//-- On parcours les données
for( i=0; i<days.length; i++){
Date_Ref = new Date(days[i]);
//-- Formatage Date du Message
szMsg = Format_Date( Date_Ref);
//-- Comparaison de chaine
if( szMsg >= szToday){
Count++; // Compteur de message
if( Count > 2) continue; // Stop la boucle si déjà 2 messages
Chaine += "";
//-- Texte suivant le Cas
if( szMsg == szToday)
Chaine += "Aujourdh'ui," ;
else if( szMsg == szDemain)
Chaine += "Demain," ;
else
Chaine += szJour[Date_Ref.getDay()];
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 14 nov. 2006 à 12:12
1000 excuses je n'avions pas tout saisie...
Cette fois ci je pense être en phase ce qui donne en version simplifiée
<html>
<head>
<script type= "text/javascript">
var szJour = new Array("Dimanche", "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi");
var szMois = new Array("Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre", "Décembre");
var Today = new Date();
var days = new Array();
var msgs = new Array();
//-- on utilise i avec i++ pour pouvoir déplacer les messages ou en créer facilement
var i=0;
days[i] = "november 12, 2006";
msgs[i++] = "Sarrebourg contre Hangwiller à 14h";
days[i] = "november 20, 2006";
msgs[i++] = "Niderviller contre Sarrebourg à 14h";
days[i] = "december 26, 2006";
msgs[i++] = "Championnat Minimes à 14h au Cosec";
//------------------------------------
// Retourne la date au format AAAAMMJJ
//------------------------------------
function Format_Date( date_){
var Chaine="";
var Jour = date_. getDate ();
var Mois = date_.getMonth();
var Annee = date_. getFullYear ();
Chaine + = Annee;
if( Mois < 10) Chaine +="0"; // Ajout d'un 0 avant
Chaine += Mois;
if( Jour < 10) Chaine +="0";
// Ajout d'un 0 avant
Chaine += Jour;
return( Chaine);
}
//----------------
function dateMsg(){
var tempdate;
var szMsg;
archi57
Messages postés30Date d'inscriptiondimanche 10 mars 2013StatutMembreDernière intervention11 novembre 2017 14 nov. 2006 à 13:40
Excellent PetroleTeam, té un pro
une dernière question pour conclure le script:
sachant bien sur que j'ai une vingtaine de dates à saisir !!
comment faire en sorte d'afficher comme suit (suivant la date du jour)
Si on est le 11 novembre par exemple, il faut obtenir:
Demain, 12 novembre:
Sarrebourg contre Hangwiller à 14h
Le mardi 20 Novembre:
Niderviller contre Sarrebourg à 14h
OU
Si on est le 12 novembre par exemple, il faut obtenir:
Aujourd'hui, 12 novembre:
Sarrebourg contre Hangwiller à 14h
Le mardi 20 Novembre
Niderviller contre Sarrebourg à 14h
OU
Si on est le 13, 14,etc...jusqu'au 18 novembre par exemple, il faut obtenir:
Le mardi 20 Novembre:
Sarrebourg contre Hangwiller à 14h
Le Dimanche 26 Novembre:
Championnat Minimes à 14h au Cosec
OU
Si on est le 26 novembre (et qu'il ya une compétition le 27), il faut obtenir:
Aujourd'hui, 26 Novembre:
Championnat Minimes à 14h au Cosec
Demain, 27 Novembre:
Hangwiller contre Sarrebourg à 14h
voila, pour les cas de figures !!
merci d'avance
bye
archi57
Messages postés30Date d'inscriptiondimanche 10 mars 2013StatutMembreDernière intervention11 novembre 2017 15 nov. 2006 à 10:49
tu va me trouver un peu concon, mais je n'arrive pas a insérer un saut de ligne entre deux date+message ??
de plus j'aimerai pouvoir régler en hauteur cette espacement créer ??
peux tu m'aider?
bye
Il te restes a modifier la fonction pour prendre en compte les styles comme suit
...
if( szMsg > = szToday){
Count++;
if( Count > 2) continue; // Stop la boucle
Chaine += "
";
//-- Texte suivant le Cas
if( szMsg == szToday)
Chaine += "Aujourdh'ui," ;
else if( szMsg == szDemain)
Chaine += "Demain," ;
else
Chaine += szJour[Date_Ref.getDay()];
archi57
Messages postés30Date d'inscriptiondimanche 10 mars 2013StatutMembreDernière intervention11 novembre 2017 15 nov. 2006 à 15:38
merci PetoleTeam,
comme tu m'a l'air très doué en script, je me permets de te présenter un autre script, ou j'aimerai insérer un autre message mais sous le compteur !! du style:
Sarrebourg contre Hangwiller, c'est dans:
29 jours, 17 heures, 41 minutes
Alors, n'oubliez pas votre licence
Merci d'avance
bye
Voici le code:
<html>
<head>
<SCRIPT language=JavaScript>var dat new Array(); var msg new Array(); var msg2 = new Array();
var timerID;
var timerRunning = false;
var today = new Date();
var enday = new Date();
var totime, entime, diff = 0;
var secs, mins, hous, days = 0;
var timeRemain, dbg = 0;
function calcmes()
{
today = new Date();
totime = today.getTime();
for ( i=1; i<=M; i++ )
{
enday = new Date( dat[i] );
entime = enday.getTime();
diff = Math.round( (entime - totime) / 1000 );
if (diff > 0) break;
} // for
N = i;
document.write(""+msg[N]+", "+ok+"'est dans,"+msg2[N]+"" );
} // calcmes()
function stopclock (){
if (timerRunning) clearTimeout(timerID);
timerRunning = false;
}
function startclock () {
stopclock();
showtime();
} // startclock()
function showtime () {
today = new Date( );
totime = today.getTime();
enday = new Date( dat[N] );
entime = enday.getTime();
PetoleTeam
Messages postés3426Date d'inscriptionlundi 26 décembre 2005StatutMembreDernière intervention14 janvier 201117 15 nov. 2006 à 19:00
1st La réponse ayant été acceptée il serait préférable de faire un nouveau POST sur le forum, sinon plus personne ne risque de venir s'intéresser à ton problème qui n'est plus celui du début...
2nd on ne fait pas de livraison clé en main à chaque fois...
Bon ceci étant, et si je ne m'abuse, tu as tout les éléments en main pour réaliser ta requête...
- la variable globale timeRemain te retourne le délai sous forme de string.
- la fonction calcmes() pour afficher ton message.
Il te suffit d'utiliser l'un dans l'autre.
Attention ...ton document.write(""+msg[N]+", "+ok+"'est dans,"+msg2[N]+"" ); ne marche que lorsque ton document est ouvert donc il faut passer par un
et écrire dedans à chaque fois que tu calcul le délai restant.
Dans ton document tu met un
la ou tu veux que le texte apparaisse, par exemple...
----
<FORM NAME="clock" ONSUBMIT=0>
<TT>
</TT>
</FORM>
,
Dans ta fonction
calcmes() tu n'écris plus dans le document mais dans le DIV
//document.write(""+msg[N]+", "+ok+"'est dans,"+msg2[N]+"" );
document.getElementById('INFO').innerHTML = "" +msg[N] +", "c\'est dans,
"+ timeRemain;
Il te restes toutefois à appeller cette fonction dans la fonction showtime() par exemple
...
document.clock.face.value=timeRemain;
calcmes();
timerID = setTimeout("showtime()",1000);
...
Il te resteras à gérer de menus désagréments d'affichage...
archi57
Messages postés30Date d'inscriptiondimanche 10 mars 2013StatutMembreDernière intervention11 novembre 2017 15 nov. 2006 à 20:09
Merci PetoleTeam, je viens d'essayer d'insérer les modifs sur tes explications...mais je ne me sors pas...j'ai des bugs sur pas mal de lignes....peux tu me faire un exemple plus précis ?? STP