JavaScript comment obtenir la date de demain au format jj-mm-aa

90

J'essaie d'obtenir JavaScript pour afficher la date de demain au format (jj-mm-aaaa)

J'ai ce script qui affiche la date d'aujourd'hui au format (jj-mm-aaaa)

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 puis-je le faire afficher la date de demain dans le même format ie 26/2/2012

J'ai essayé ceci:

var day = currentDate.getDate() + 1

Cependant je pourrais garder +1et dépasser 31 évidemment il n'y a pas> 32 jours dans un mois

Vous cherchez depuis des heures mais ne semble pas y avoir de réponse ou de solution à ce sujet?

daza166
la source

Réponses:

176

Cela devrait être très agréable pour vous.

Si vous passez le constructeur Date une fois, 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>")

Une chose à garder à l'esprit est que cette méthode renverra la date exactement dans 24 heures, 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 édité mon article est que j'ai moi-même créé un bogue qui est apparu pendant l'heure d'été en utilisant mon ancienne méthode.

Roderick Obrist
la source
9
Merci, un peu plus courtvar currentDate = new Date(+new Date() + 86400000);
Ikrom
13
Notez qu'avec cette stratégie, vous pourriez rencontrer des problèmes autour de l'heure d'été, ce qui fait qu'un jour de l'année dispose de 23 heures et un autre d'en avoir 25. La réponse de Phil ci-dessous évite ce problème.
gsf
3
new Date().getTime()peut être simplifié commeDate.now()
czerny
Ils sont tous les deux corrects, je ne pense pas que IE8 ait Date.now () cependant.
Roderick Obrist
2
@ConorB, .getMonth () renvoie 0 pour janvier, 1 pour février ... etc 11 pour décembre. L'ajout de 1 le transforme de l'index du tableau en date lisible par l'homme.
Roderick Obrist
136

La Dateclasse JavaScript gère cela pour vous

var d = new Date("2012-02-29")
console.log(d)
// Wed Feb 29 2012 11:00:00 GMT+1100 (EST)

d.setDate(d.getDate() + 1)
console.log(d)
// Thu Mar 01 2012 11:00:00 GMT+1100 (EST)

console.log(d.getDate())
// 1
Phil
la source
Cela fonctionnera-t-il encore si aujourd'hui était le dernier jour d'un mois, comme le 31? Si vous ajoutez +1, ne vous retrouveriez-vous pas 32e?
Timo
19
@Timo à peu près sûr que mon exemple démontre exactement cela
Phil
1
Oh, ouais tu as raison. J'ai oublié que février ne compte que 28 jours :-)
Timo
Cela a échoué pour moi aujourd'hui parce que new Date ('2016-10-31') renvoie 'Sun Oct 30 2016 23:00:00 GMT-0100 (AZOT)'. Je suis aux Açores et le fuseau horaire a été changé de AZOST à ​​AZOT
nunoarruda
@nunoarruda désolé, je ne sais pas vraiment ce que vous dites là ou ce que cela a à voir avec cette réponse
Phil
7

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

http://www.datejs.com/

Procédez comme suit:

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

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

MattW
la source
1
J'aime mieux la réponse de Phil ... J'utilise DateJS pour toutes les dates - mais il semble que cela puisse être fait en utilisant JS seul!
MattW
4
Date.parse ('demain'). ToString ('jj-MM-aaaa');
geoffrey.mcgill
5

La 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()}`;
}
Czerny
la source
4

Ce qui suit utilise une combinaison des réponses de Roderick et Phil avec deux conditions supplémentaires qui représentent des mois / jours à un chiffre.

De nombreuses API avec lesquelles j'ai travaillé sont pointilleuses à ce sujet et exigent que les dates aient huit chiffres (par exemple, «02022017»), au lieu des 6 ou 7 chiffres que la classe de date va vous donner dans certaines situations.

function nextDayDate() {
      // get today's date then add one
      var nextDay = new Date();
      nextDay.setDate(nextDay.getDate() + 1);

      var month = nextDay.getMonth() + 1;
      var day = nextDay.getDate();
      var year = nextDay.getFullYear();

      if (month < 10) { month = "0" + month } 
      if (day < 10) { day = "0" + day }

      return month + day + year;
}
DNestoff
la source
3

Cas d'utilisation:

Date.tomorrow() // 1 day next 
Date.daysNext(1) // alternative Date.tomorrow()
Date.daysNext(2) // 2 days next. 

SI "demain" ne dépend pas d'aujourd'hui mais d'une autre date différente de Date.now(), n'utilisez pas de méthodes statiques mais vous devez plutôt utiliser des méthodes non statiques:

ie: Ven 05 décembre 2008

 var dec5_2008=new Date(Date.parse('2008/12/05'));
 dec5_2008.tomorrow(); // 2008/12/06
    dec5_2008.tomorrow().day // 6
    dec5_2008.tomorrow().month // 12
    dec5_2008.tomorrow().year //2008
 dec5_2008.daysNext(1); // the same as previous
 dec5_2008.daysNext(7) // next week :)

API:

Dateold=Date;function Date(e){var t=null;if(e){t=new Dateold(e)}else{t=new Dateold}t.day=t.getDate();t.month=t.getMonth()+1;t.year=t.getFullYear();return t}Date.prototype.daysNext=function(e){if(!e){e=0}return new Date(this.getTime()+24*60*60*1e3*e)};Date.prototype.daysAgo=function(e){if(!e){e=0}return Date.daysNext(-1*e)};Date.prototype.tomorrow=function(){return this.daysNext(1)};Date.prototype.yesterday=function(){return this.daysAgo(1)};Date.tomorrow=function(){return Date.daysNext(1)};Date.yesterday=function(){return Date.daysAgo(1)};Date.daysNext=function(e){if(!e){e=0}return new Date((new Date).getTime()+24*60*60*1e3*e)};Date.daysAgo=function(e){if(!e){e=0}return Date.daysNext(-1*e)}
Abdennour TOUMI
la source
3

Méthode 1: Si vous ne rencontrez pas de problème lors de l'utilisation d'une autre bibliothèque, cela pourrait fonctionner pour vous en utilisant moment.js

moment().add('days', 1).format('L');

Méthode 2: Utilisation de Date.js,

<script type="text/javascript" src="date.js"></script>    
var tomorrow = new Date.today().addDays(1).toString("dd-mm-yyyy"); 

Cette méthode utilise une bibliothèque externe et non la bibliothèque de dates native. Comme mon bootstrap-datetimepicker utilisait moment.js et la bibliothèque de dates native, j'ai préféré la méthode 1. Cette question mentionne ces méthodes et d'autres.

Shiwangi
la source
2

C'est vraiment simple:

1: Créez un objet de date avec la date et l'heure d'aujourd'hui. 2: Utilisez les méthodes d'objet date pour récupérer le jour, le mois et l'année complète et les concaténer à l'aide de l'opérateur +.

Visitez http://www.thesstech.com/javascript/date-time JavaScript pour un didacticiel détaillé sur la date et l'heure.

Exemple de code:

  var my_date = new Date();  
  var tomorrow_date =       (my_date .getDate()+1)  + "-" + (my_date .getMonth()+1) + "-" + my_date .getFullYear();
  document.write(tomorrow_date);
Sohail Arif
la source
Cela ne recule pas de date en mois, comme le PO l'a déjà observé.
Wolfgang Kuehn
0
function getMonday(d)
{
   // var day = d.getDay();
   var day = @Config.WeekStartOn
   diff = d.getDate() - day + (day == 0 ? -6 : 0);
   return new Date(d.setDate(diff));
}
Preetika
la source
0

Identique à la réponse originale, mais sur une seule ligne:

var tomorrow = new Date(Date.now() + 24 * 60 * 60 * 1000)

Les nombres sont valables 24 heures 60 minutes 60 secondes 1000 millisecondes.

Velter
la source
1
Cette réponse n'est pas correcte car l'heure d'été n'est pas prise en compte.
Déçu
0

vous pouvez essayer ceci:

function Tomorrow(date=false) {
    var givendate = (date!=false) ? new Date(date) : new Date();
    givendate.setDate(givendate.getDate() + 1);
    var day = givendate.getUTCDate()
    var month = givendate.getUTCMonth()+1
    var year = givendate.getUTCFullYear()
    result ="<b>" + day + "/" + month + "/" + year + "</b>";
    return result;
} 
var day = Tomorrow('2020-06-30');
console.log('tomorrows1: '+Tomorrow('2020-06-30'));
console.log('tomorrows2: '+Tomorrow());

Walter Nuñez
la source
0
        Date.prototype.NextDay = function (e) {
        return new Date(this.getFullYear(), this.getMonth(), this.getDate() + ("string" == typeof e ? parseInt(e, 10) : e));
    }

    // tomorrow
    console.log(new Date().NextDay(1))

    // day after tomorrow
    console.log(new Date().NextDay(2))
Fhulufhelo Mokhomi
la source
0

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 pouvez trouver tous les codes courts des paramètres régionaux sur https://stackoverflow.com/a/3191729/7877099

Isuru Dilshan
la source
-1
        //-----------Date Configuration march 18,2014----------------------

        //alert(DateFilter);

        var date = new Date();
        y = date.getFullYear(), m = date.getMonth();
        var EndDate = new Date();



        switch (DateFilter) {
            case 'today': var StartDate = EndDate;   //todays date                 
                break;
            case 'yesterday':
                var d = new Date();
                var previousDate = new Date(d.getTime() - 1000 * 60 * 60 * 24);
                var StartDate = new Date(previousDate.yyyymmdd()); //yesterday Date
                break;
            case 'tomorrow':
                var d = new Date();
                var NextDate = new Date(d.getTime() + 1000 * 60 * 60 * 24);
                var StartDate = new Date(NextDate.yyyymmdd()); //tomorrow Date
                break;
            case 'thisweek': var StartDate = getMonday(new Date()); //1st date of this week
                break;
            case 'thismonth': var StartDate = new Date(y, m, 1);  //1st date of this month
                break;
            case 'thisyear': var StartDate = new Date("01/01/" + date.getFullYear());  //1st date of this year
                break;
            case 'custom': //var StartDate = $("#txtFromDate").val();                   
                break;
            default:
                var d = new Date();
                var StartDate = new Date(d.getTime() - 30 * 24 * 60 * 60 * 1000); //one month ago date from now.
        }


        if (DateFilter != "custom") {
            var SDate = $.datepicker.formatDate('@Config.DateFormat', StartDate); $("#txtFromDate").val(SDate);
            var EDate = $.datepicker.formatDate('@Config.DateFormat', EndDate); $("#txtToDate").val(EDate);
        }
        //-----------Date Configuration march 18,2014----------------------
Preetika
la source
Veuillez envisager d'ajouter une explication à votre réponse.
Amar
-1
var curDate = new Date().toLocaleString().split(',')[0];

Simplement! au format jj.mm.aaaa.

Idan
la source