小编典典

在 JavaScript 中获取当前日期和时间

all

我有一个在 JavaScript 中打印当前日期和时间的脚本,但DATE总是错误的。这是代码:

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

它应该打印18/04/2012 15:07:33并打印3/3/2012 15:07:33


阅读 99

收藏
2022-03-08

共1个答案

小编典典

.getMonth()返回一个从零开始的数字,因此要获得正确的月份,您需要加 1,因此调用.getMonth()may 将返回4而不是5

因此,在您的代码中,我们可以使用它currentdate.getMonth()+1来输出正确的值。此外:

  • .getDate()返回月份中的哪一天 < - 这是你想要的那一天
  • .getDay()Date对象的一个​​单独方法,它将返回一个表示当前星期几的整数 (0-6)0 == Sunday

所以你的代码应该是这样的:

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

JavaScript Date 实例继承自 Date.prototype。您可以修改构造函数的原型对象以影响 JavaScript Date
实例继承的属性和方法

您可以使用Date原型对象创建一个新方法,该方法将返回今天的日期和时间。这些新方法或属性将被Date对象的所有实例继承,因此如果您需要重用此功能,它特别有用。

// 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();
}

然后,您可以通过执行以下操作简单地检索日期和时间:

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

或者调用内联方法,这样它就可以简单地 -

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