11548 sujets

JavaScript, DOM et API Web HTML5

Bonjour à vous,

Je possède une date et je souhaiterai lui retirer ou ajouter des jours, mois et/ou annee en Javascript.

Je ne parviens pas à écrire une fonction sans traiter à la main tous les cas particuliers... Bref, existe-t-il une fonction qui permette de faire des manipulations sur une date ?

Merci d'avance.
OK, problème résolu !

Il faut appeler la fonction addSubDays avec ses paramètres :
- date_initiale : au format jj-mm-aaaa
- day : nombre de jour(s) en plus ou en moins
- month : nombre de mois en plus ou en moins
- year : nombre d'annee(s) en plus ou en moins
// Fonction qui signale si on ajoute ou retire des jours
function addSubDays(date_initiale, day, month, year) {
	return calculDaysToDate(date_initiale, day, month, year);
}

// Calcule la nouvelle date
function calculDaysToDate(old_date, day, month, year) {
	// On coupe la date en segment
	var split_date = old_date.split('-');
	// Les mois vont de 0 a 11 donc on enleve 1, cast avec *1
	var new_date = new Date(split_date[2]*1 + year, split_date[1]*1 - 1 + month, split_date[0]*1 + day);
	var new_date_format = dateEuropeanFormat(new_date);

	return new_date_format;
}

// Retourne la date au format jj-mm-aaaa
function dateEuropeanFormat(new_date) {
	var new_day = new_date.getDate();
	// Ajoute un zero devant pour la forme
	new_day = ((new_day < 10) ? '0' : '') + new_day;

	var new_month = new_date.getMonth() + 1;
	// Ajoute un zero devant pour la forme
	new_month = ((new_month < 10) ? '0' : '') + new_month;

	var new_year = new_date.getYear();
	// Necessaire car IE et FF retourne pas la meme chose
	new_year = ((new_year < 200) ? 1900 : 0) + new_year;

	// Mise en forme de la date
	var new_date_text = new_day+'-'+new_month+'-'+new_year;

	return new_date_text;
}


edit: Résolu !
edit2: Modification d'un commentaire.
Modifié par Alphonse (17 Jun 2010 - 15:15)