web-dev-qa-db-fra.com

Définissez la date dans 10 jours et formatez le format jj/mm/aaaa (21/08/2010, par exemple).

J'apprécierais vraiment de l'aide pour créer du code JavaScript qui sera éventuellement utilisé dans Selenium, qui définit automatiquement une date à 10 jours de la date du jour et s'affiche au format jj/mm/aaaa suivant.

J'ai actuellement le script ci-dessous, mais je ne vais nulle part avec:

var myDate=new Date();
myDate.now.format(myDate.setDate(myDate.getDate()+5),("dd/mm/yyyy");

Toute aide serait très appréciée.

23
Julian

Voici un exemple d'obtention de la date future ...

var targetDate = new Date();
targetDate.setDate(targetDate.getDate() + 10);

// So you can see the date we have created
alert(targetDate);

var dd = targetDate.getDate();
var mm = targetDate.getMonth() + 1; // 0 is January, so we must add 1
var yyyy = targetDate.getFullYear();

var dateString = dd + "/" + mm + "/" + yyyy;

// So you can see the output
alert(dateString);

Il existe des moyens plus gracieux de formater les dates. Vous trouverez des exemples aux destinations suivantes:

http://www.west-wind.com/Weblog/posts/282495.aspx

http://www.svendtofte.com/javascript/javascript-date-string-formatting/

23
Fenton

Essayer:

new Date(Date.now() + (1000 /*sec*/ * 60 /*min*/ * 60 /*hour*/ * 24 /*day*/ * 10))
13
HaNdTriX

J'avais besoin de faire quelque chose comme ça, mais j'avais besoin du résultat en ligne. C'est donc ce qui a fonctionné pour moi pour obtenir la date dans 10 jours:

new Date((new Date()).getTime() + (10 * 86400000))
1
Jayd

Ce que je voudrais faire, c'est créer un objet DateHelper personnalisé qui ressemble à ceci:

var DateHelper = {
    addDays : function(aDate, numberOfDays) {
        aDate.setDate(aDate.getDate() + numberOfDays); // Add numberOfDays
        return aDate;                                  // Return the date
    },
    format : function format(date) {
        return [
           ("0" + date.getDate()).slice(-2),           // Get day and pad it with zeroes
           ("0" + (date.getMonth()+1)).slice(-2),      // Get month and pad it with zeroes
           date.getFullYear()                          // Get full year
        ].join('/');                                   // Glue the pieces together
    }
}

// With this helper, you can now just use one line of readable code to :
// ---------------------------------------------------------------------
// 1. Get the current date
// 2. Add 10 days
// 3. Format it
// 4. Output it
// ---------------------------------------------------------------------
document.body.innerHTML = DateHelper.format(DateHelper.addDays(new Date(), 10));

(voir aussi this Fiddle )

0
John Slegers

J'avais besoin d'avoir l'année à venir en ajoutant des mois:

var duration = 13;
var month = 11;
var year = 2018;
var final_year = new Date(year, month + duration);
document.body.innerHTML = final_year.getFullYear();

0
Ulugov

Le sujet de cette page originale date de 2010. J'ai donc ajouté cette réponse en août 2017. Il s'agit d'une solution simple qui fonctionne bien pour créer une plage date défilante en fonction de la date actuelle.

Par exemple: Si aujourd'hui est le 28 août 2017 et que vous souhaitez une date de début de -7 jours dans le passé et une date future de 23 jours à l'avenir, le code JavaScript suivant générera une chaîne de plage de dates de: 21 août au 20 septembre 2017

Puis le lendemain, le 29 août 2017, la plage de dates sera la suivante: du 22 août au 21 septembre 2017

Remarque: si nécessaire, vous pouvez modifier le code pour rendre la date de début ou la date future statiques.

Pour l'utiliser en code HTML:

L'événement a lieu: <script>document.write(dateRange)</script>

donnera:

L'événement a lieu: du 21 août au 20 septembre 2017

var month = new Array();
month[0] = "January";
month[1] = "February";
month[2] = "March";
month[3] = "April";
month[4] = "May";
month[5] = "June";
month[6] = "July";
month[7] = "August";
month[8] = "September";
month[9] = "October";
month[10] = "November";
month[11] = "December";

var startDate = new Date();
startDate.setDate(startDate.getDate() -7 );

var futureDate = new Date();
futureDate.setDate(futureDate.getDate() + 23);

var m1 = month[startDate.getMonth()];
var d1 = startDate.getDate();
var y1 = startDate.getFullYear();

var m2 = month[futureDate.getMonth()];
var d2 = futureDate.getDate();
var y2 = futureDate.getFullYear();

var dateRange = m1 + ' ' + d1 + ' thru ' + m2 + ' ' + d2 + ', ' + y2;

// alert(dateRange); use alert function to test the date range
0
Sammy