679 votes

Obtenir la date et l'heure actuelles en JavaScript

J'ai un script qui imprime la date et l'heure en JavaScript, mais le DATE est toujours faux. Voici le code:

 var currentdate = new Date();
var datetime = "Last Sync: " + currentdate.getDay() + "/"+currentdate.getMonth() 
+ "/" + currentdate.getFullYear() + " @ " 
+ currentdate.getHours() + ":" 
+ currentdate.getMinutes() + ":" + currentdate.getSeconds();
 

Il devrait imprimer 18/04/2012 15:07:33 et imprime 3/3/2012 15:07:33

De l'aide? Merci

776voto

Mark Walters Points 3987

Lors de l'appel d' .getMonth() vous avez besoin d'ajouter +1 pour afficher le mois. Javascript décompte commence toujours à 0 (regardez ici pour vérifier pourquoi), afin de l'appelant .getMonth() en mai sera de retour 4 et pas 5.

Donc, dans votre code, nous pouvons utiliser currentdate.getMonth()+1 à la sortie de la valeur correcte. En outre:

  • .getDate() renvoie le jour du mois <- c'est celui que vous voulez
  • .getDay() est une méthode distincte de l' Date objet qui renvoie un entier représentant le jour actuel de la semaine (0-6) 0 == Sunday etc

ainsi, votre code devrait ressembler à ceci:

var currentdate = new Date(); 
var datetime = "Last Sync: " + currentdate.getDate() + "/"
                + (currentdate.getMonth()+1)  + "/" 
                + currentdate.getFullYear() + " @ "  
                + currentdate.getHours() + ":"  
                + currentdate.getMinutes() + ":" 
                + currentdate.getSeconds();

JavaScript Date instances hériter de la Date.le prototype. Vous pouvez modifier le prototype du constructeur de l'objet à affecter les propriétés et les méthodes héritées par JavaScript Date instances

Vous pouvez utiliser le prototype du constructeur de la Date objet et de créer une nouvelle méthode de l' Date objet de retour aujourd'hui de la date et de l'heure. Ces nouvelles méthodes ou propriétés sont héritées par toutes les instances de l' Date objet rendant ainsi particulièrement utile si vous avez besoin de ré-utiliser cette fonctionnalité.

// For todays date;
Date.prototype.today = function () { 
    return ((this.getDate() < 10)?"0":"") + this.getDate() +"/"+(((this.getMonth()+1) < 10)?"0":"") + (this.getMonth()+1) +"/"+ this.getFullYear();
}

// For the time now
Date.prototype.timeNow = function () {
     return ((this.getHours() < 10)?"0":"") + this.getHours() +":"+ ((this.getMinutes() < 10)?"0":"") + this.getMinutes() +":"+ ((this.getSeconds() < 10)?"0":"") + this.getSeconds();
}

Vous pouvez ensuite il vous suffit de récupérer la date et l'heure en procédant comme suit:

var newDate = new Date();
var datetime = "LastSync: " + newDate.today() + " @ " + newDate.timeNow();

Ou l'appel à la méthode en ligne, de sorte qu'il serait tout simplement -

var datetime = "LastSync: " + new Date().today() + " @ " + new Date().timeNow();

90voto

Daniel Lee Points 185

Si vous voulez vraiment la date de style mysql utilisez cette

2013/10/04 08:51:32

  function getDateTime() {
    var now     = new Date(); 
    var year    = now.getFullYear();
    var month   = now.getMonth()+1; 
    var day     = now.getDate();
    var hour    = now.getHours();
    var minute  = now.getMinutes();
    var second  = now.getSeconds(); 
    if(month.toString().length == 1) {
        var month = '0'+month;
    }
    if(day.toString().length == 1) {
        var day = '0'+day;
    }   
    if(hour.toString().length == 1) {
        var hour = '0'+hour;
    }
    if(minute.toString().length == 1) {
        var minute = '0'+minute;
    }
    if(second.toString().length == 1) {
        var second = '0'+second;
    }   
    var dateTime = year+'/'+month+'/'+day+' '+hour+':'+minute+':'+second;   
     return dateTime;
}
 

17voto

Chuck Norris Points 8240
 var currentdate = new Date();

    var datetime = "Last Sync: " + currentdate.getDate() + "/"+(currentdate.getMonth()+1) 
    + "/" + currentdate.getFullYear() + " @ " 
    + currentdate.getHours() + ":" 
    + currentdate.getMinutes() + ":" + currentdate.getSeconds();
 

Changez la méthode .getDay() en .GetDate() et ajoutez-en une au mois, car elle compte les mois à partir de 0.

9voto

sp00m Points 18767
Ça devrait marcher.

5voto

Scorpion-Prince Points 1820

Vous devez utiliser getDate () pour obtenir la partie date. La fonction getDay () renvoie le numéro du jour (Sunday = 0, Monday = 1 ...) et le getMonth () renvoie un index basé sur 0, vous devez donc l'incrémenter de 1.

  var currentdate = new Date(); 

 var datetime = "Last Sync: " + currentdate.getDate() + "/"+  (parseInt(currentdate.getMonth())    + 1)
   + "/" + currentdate.getFullYear() + " @ "  
   + currentdate.getHours() + ":"  
   + currentdate.getMinutes() + ":" + currentdate.getSeconds(); 
 

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