Précédent   Forum des professionnels en informatique > Webmasters - Développement Web > JavaScript
JavaScript Forum programmation JavaScript. Lire : Cours JavaScript, FAQ JavaScript, Toutes les FAQ JavaScript et Sources JavaScript
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 17/12/2011, 13h48   #1
Invité de passage
 
Femme Pauline
Étudiant
Inscription : décembre 2011
Messages : 12
Détails du profil
Informations personnelles :
Nom : Femme Pauline
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2011
Messages : 12
Points : 1
Points : 1
Par défaut Modifier une sous chaîne de caractères

Bonjour,

Dans ma page html, j'ai un champ avec une date de la forme JJ/MM/AAAA en chaîne de caractère. Je récupère les différentes parties de la date avec split('/'). Le problème c'est que je voudrais pouvoir modifier ces champs, c'est à dire JJ, MM, où AAAA. Sauf que ça ne fonctionne pas.

Exactement voilà ce que j'aimerai faire :
Code :
1
2
elem = document.getElementById('dateTexte').value.split('/');
elem[1] = elem[1]*1 + 1;
par exemple. C'est tout simplement pas possible ou dois je utiliser une certaine méthode pour parvenir à mes fins ?

Merci de votre attention et bonne journée.
PaulineGjm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 17/12/2011, 19h00   #2
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
Citation:
Sauf que ça ne fonctionne pas.
On peut voir ton code ?
La methode que tu decris fonctionne...

Tu pourrais aussi passer par la conversion en date ...
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 12h46   #3
Invité de passage
 
Femme Pauline
Étudiant
Inscription : décembre 2011
Messages : 12
Détails du profil
Informations personnelles :
Nom : Femme Pauline
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2011
Messages : 12
Points : 1
Points : 1
Le principe c'est que j'ai un champs texte où on peut écrire la date. A partir de ça, je génère le tableau pour représenter le bon mois à la bonne année en calendrier.
Au chargement de la page, la date est celle d'aujourd'hui. On peut changer la date ou non et ensuite demander à générer le tableau. Ca c'est bon ça fonctionne très bien.
A la fin du tableau je rajoute également ce code :

Code :
1
2
3
4
5
res = res + "<input type='button' value='+' onclick='date(0)'/> mois";
res = res + "<input type='button' value='-' onclick='date(1)'/>";
res = res + "<input type='button' value='+' onclick='date(2)'/> année";
res = res + "<input type='button' value='-' onclick='date(3)'/>	";
document.getElementById('b2').innerHTML = res;
Donc 4 boutons pour incrémenter ou décrémenter les mois ou les années.

la fonction date :

Code :
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
 
function date(nb)
{
	var elem = document.getElementById('dateTexte').value.split('/');
 
	if(nb == 0)
	{
		if(elem[1]*1 == 12)
		{
			elem[1] = 1;
		}
		else
		{
			elem[1] = elem[1]*1 + 1;
		}
	}
	else 
	{
		if(nb == 1)
		{
			if(elem[1]*1 == 1)
			{
				elem[1] = 12;
				elem[2] = elem[2] - 1;
			}
			else
			{
				elem[1] = elem[1] - 1;
			}
		}
		else 
		{
			if(nb == 2)
			{
				elem[2] = elem[2]*1 + 1;	
			}
			else
			{
				elem[2] = elem[2]*1 - 1;
			}
		}
	}
	genereTab();
}
PaulineGjm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 14h06   #4
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
Voici une proposition qui passant par les dates ne retourne que des dates valides ...
Code :
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
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<style type="text/css">
input {width:80px;}
</style>
<script type="text/javascript">
function digits(fig){
fig=fig.toString()
fig=fig.replace(/^(\d)$/,"0$1")
return fig
}
 
function getActuel(){
return  document.getElementById('res').innerHTML.split('/')
}
 
function writeDate(outdate){
res=digits(outdate.getDate())
res+='/'+digits(outdate.getMonth()+1)
res+='/'+outdate.getFullYear();
document.getElementById('res').innerHTML=res
}
 
function Modif(u,diff){
tabDate=getActuel();
outd= new Date()
outd.setFullYear(tabDate[2]*1 +((u=="a")?diff:0) );
outd.setMonth( tabDate[1]*1-1 +((u=="m")?diff:0)  );
outd.setDate(tabDate[0]*1+((u=="j")?diff:0) )
writeDate(outd)
}
 
</script>
<title>Nouvelle page 1</title>
</head>
 
<body>
 <div id ="res">01/01/2011</div><br/>
 <input type="button" onclick="Modif('j',1)" value="+jour" /><input type="button" onclick="Modif('m',1)" value="+Mois" /><input type="button" onclick="Modif('a',1)" value="+An" /><br/>
<input type="button" onclick="Modif('j',-1)" value="-jour" /><input type="button" onclick="Modif('m',-1)" value="-Mois" /><input type="button" onclick="Modif('a',-1)" value="-An" /><br/>
 
</body>
 
</html>
A priori sous IE il y a un truc qui le vexe je cherche
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 14h18   #5
Modérateur
 
Avatar de NoSmoking
 
Homme
Inscription : janvier 2011
Messages : 2 944
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : France, Isère (Rhône Alpes)

Informations forums :
Inscription : janvier 2011
Messages : 2 944
Points : 4 776
Points : 4 776
Citation:
Envoyé par SpaceFrog Voir le message
A priori sous IE il y a un truc qui le vexe je cherche
manque un var devant res, grand classique sous IE
Code :
var res=digits(outdate.getDate());
attendu qu'il y a
Code html :
 <div id ="res">01/01/2011</div><br/>
essaies en ajoutant
alert( res.tagName);au début de la fonction writeDate
NoSmoking est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 14h22   #6
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
Bon avec l'esprit en mode weekend ...

En changeant le nom de la variable, ça fonctionne tout de suite mieux
Merci NoSmo
Code :
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
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1252">
<style type="text/css">
input {width:80px;}
</style>
<script type="text/javascript">
function digits(fig){
fig=fig.toString()
fig=fig.replace(/^(\d)$/,"0$1")
return fig
}
 
function getActuel(){
return  document.getElementById('res').innerHTML.split('/')
}
 
function writeDate(outdate){
resp=digits(outdate.getUTCDate());
resp +='/'+digits(outdate.getUTCMonth()+1)
resp +='/'+outdate.getUTCFullYear();
document.getElementById('res').innerHTML=resp
}
 
function Modif(u,diff){
tabDate=getActuel();
outd= new Date()
outd.setUTCFullYear(tabDate[2]*1 +((u=="a")?diff:0) );
outd.setUTCMonth( tabDate[1]*1-1 +((u=="m")?diff:0)  );
outd.setUTCDate(tabDate[0]*1+((u=="j")?diff:0) )
writeDate(outd)
}
 
</script>
<title>Nouvelle page 1</title>
</head>
 
<body>
 <div id ="res">01/01/2011</div><br/>
 <input type="button" onclick="Modif('j',1)" value="+jour" /><input type="button" onclick="Modif('m',1)" value="+Mois" /><input type="button" onclick="Modif('a',1)" value="+An" /><br/>
<input type="button" onclick="Modif('j',-1)" value="-jour" /><input type="button" onclick="Modif('m',-1)" value="-Mois" /><input type="button" onclick="Modif('a',-1)" value="-An" /><br/>
 
</body>
 
</html>
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 19h04   #7
Invité de passage
 
Femme Pauline
Étudiant
Inscription : décembre 2011
Messages : 12
Détails du profil
Informations personnelles :
Nom : Femme Pauline
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2011
Messages : 12
Points : 1
Points : 1
D'accord, d'accord
Juste une petite chose, je comprends pas ce que c'est que : (u=="a")?diff:0
Du coup je comprend pas comment ça fonctionne.
PaulineGjm est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 20h44   #8
Rédacteur/Modérateur
 
Avatar de SpaceFrog
 
Homme
Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Inscription : mars 2002
Messages : 30 071
Détails du profil
Informations personnelles :
Sexe : Homme
Localisation : Royaume-Uni

Informations professionnelles :
Activité : Développeur Web Php Mysql Html Javascript CSS Apache - Intégrateur - Analyste Programmeur
Secteur : Industrie

Informations forums :
Inscription : mars 2002
Messages : 30 071
Points : 45 201
Points : 45 201
Au lieu de faire une fonction pour ajouter un jour, une fonction pour supprimer un jour, une fonction pour ajouter un mois .... donc en tout 6 fonctions, j'ai totu regroupé en une seule en passant deux paramètres

l'unité affectée : jour j, mois m, année a,
le nombre ajouté ou supprimé

ensuite pour chaque affectation d'unité j'utilise un operateur ternaire

ce qui équivaut à
si u vaut "a" rajout diff, sinon rajout 0

ainsi en fonction du paramètre d'unité passé j'ajoute ou je retranche un j un m ou un a
__________________
Ma page Developpez
Président du CCMPTP (Comité Contre le Mot "Problème" dans les Titres de Posts)
Deux règles du succès: 1) Ne communiquez jamais à quelqu'un tout votre savoir...
Votre post est résolu ? Alors n'oubliez pas le Tag


réalisations :www.planet-languages.com|www.saftair.com| www.ouestisol.fr | www.sebemex.fr | www.extramiante.fr | www.sistac-alizay.fr | www.acoustishop.fr | www.litt.fr | www.ouestventil.fr
SpaceFrog est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 18/12/2011, 23h55   #9
Invité de passage
 
Femme Pauline
Étudiant
Inscription : décembre 2011
Messages : 12
Détails du profil
Informations personnelles :
Nom : Femme Pauline
Localisation : France

Informations professionnelles :
Activité : Étudiant

Informations forums :
Inscription : décembre 2011
Messages : 12
Points : 1
Points : 1
Très bien, merci beaucoup !
PaulineGjm est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 02h02.


 
 
 
 
Partenaires

Hébergement Web