119 votes

JavaScript comment obtenir la date du lendemain au format dd-mm-yy

J'essaie de faire en sorte que JavaScript affiche la date du lendemain au format (jj-mm-aaaa).

J'ai ce script qui affiche la date du jour au format (dd-mm-yyyy).

var currentDate = new Date()
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")

Displays: 25/2/2012 (todays date of this post)

Mais comment faire pour qu'il affiche la date du lendemain dans le même format, c'est-à-dire 26/2/2012

J'ai essayé ceci :

var day = currentDate.getDate() + 1

Cependant, je pourrais garder +1 et dépasser 31, il est évident qu'il n'y a pas plus de 32 jours dans un mois.

J'ai cherché pendant des heures mais il semble qu'il n'y ait pas de réponse ou de solution à ce problème.

210voto

Roderick Obrist Points 3450

Cela devrait vous permettre d'obtenir un résultat très satisfaisant.

Si vous donnez une heure au constructeur de la date, il fera le reste du travail.

24 heures 60 minutes 60 secondes 1000 millisecondes

var currentDate = new Date(new Date().getTime() + 24 * 60 * 60 * 1000);
var day = currentDate.getDate()
var month = currentDate.getMonth() + 1
var year = currentDate.getFullYear()
document.write("<b>" + day + "/" + month + "/" + year + "</b>")

Il convient de garder à l'esprit que cette méthode renvoie la date dans 24 heures exactement, ce qui peut être inexact à l'heure d'été.

La réponse de Phil fonctionne à tout moment :

var currentDate = new Date();
currentDate.setDate(currentDate.getDate() + 1);

La raison pour laquelle j'ai modifié mon message est que j'ai moi-même créé un bogue qui est apparu pendant l'heure d'été en utilisant mon ancienne méthode.

162voto

Phil Points 48960

Le JavaScript Date s'en charge pour vous

var d = new Date(2012, 1, 29) // month is 0-based in the Date constructor
console.log(d.toLocaleDateString())
// Wed Feb 29 2012

d.setDate(d.getDate() + 1)
console.log(d.toLocaleDateString())
// Thu Mar 01 2012

console.log(d.getDate())
// 1

11voto

Isuru Dilshan Points 117

Utilisation de JS uniquement (Pure js)

Aujourd'hui

new Date()
//Tue Oct 06 2020 12:34:29 GMT+0530 (India Standard Time)
new Date(new Date().setHours(0, 0, 0, 0))
//Tue Oct 06 2020 00:00:00 GMT+0530 (India Standard Time)
new Date(new Date().setHours(0, 0, 0,0)).toLocaleDateString('fr-CA')
//"2020-10-06"

Demain

new Date(+new Date() + 86400000);
//Wed Oct 07 2020 12:44:02 GMT+0530 (India Standard Time)
new Date(+new Date().setHours(0, 0, 0, 0) + 86400000);
//Wed Oct 07 2020 00:00:00 GMT+0530 (India Standard Time)
new Date(+new Date().setHours(0, 0, 0,0)+ 86400000).toLocaleDateString('fr-CA')
//"2020-10-07"
//don't forget the '+' before new Date()

Après-demain

Il suffit de multiplier par deux ex:- 2*86400000

Vous trouverez tous les shortcodes relatifs aux paramètres linguistiques à l'adresse suivante https://stackoverflow.com/a/3191729/7877099

8voto

czerny Points 51

Méthode Date.prototype.setDate() accepte même les arguments en dehors de la plage standard et modifie la date en conséquence.

function getTomorrow() {
    const tomorrow = new Date();
    tomorrow.setDate(tomorrow.getDate() + 1); // even 32 is acceptable
    return `${tomorrow.getFullYear()}/${tomorrow.getMonth() + 1}/${tomorrow.getDate()}`;
}

4voto

MattW Points 3267

J'utiliserais la bibliothèque DateJS. Elle peut faire exactement cela.

http://www.datejs.com/

Ils font ce qui suit :

var d = new Date.today().addDays(1).toString("dd-mm-yyyy");

Date.today() - vous donne aujourd'hui à minuit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X