mercredi 29 août 2012

Ajouter des jours à une date en Javascript

Quel casse-tête de devoir ajouter des jours à une date en Javascript ! Après de nombreuses recherches, tests et essais, voici la seule solution qui marche vraiment :

Ajoutez cette fonction dans votre page web :

function AddDays(date, amount)
{
    var tzOff = date.getTimezoneOffset() * 60 * 1000;
    var t = date.getTime();
    t += (1000 * 60 * 60 * 24) * amount;
    var d = new Date();
    d.setTime(t);
    var tzOff2 = d.getTimezoneOffset() * 60 * 1000;
    if (tzOff != tzOff2)
    {
        var diff = tzOff2 - tzOff;
        t += diff;
        d.setTime(t);
    }
    return d;
}



Ensuite appelez la depuis votre code javascript :

function Une_Date(plus)
{
    var nouvelle = new Date(Calendar1.GetSelectedDate());
    var jour=AddDays(nouvelle, plus);
    Calendar1.SetSelectedDate(jour);
 }


Dans cette dernière fonction, on initialise une variable date avec la valeur d'un composant (dans notre cas un calendrier de componentart). On ajoute un nombre plus de jours. On injecte cette nouvelle date dans le calendrier Calendar1.