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

2022-08-29 22:41:32

我有一个脚本,用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:333/3/2012 15:07:33


答案 1

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

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

  • .getDate()返回月份中的某一天< - 这是您想要的
  • .getDay()是对象的一个单独方法,它将返回一个表示当前星期几(0-6)等的整数Date0 == 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 实例继承的属性和方法

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

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

答案 2

要获取时间和日期,您应该使用

    new Date().toLocaleString();

>> "09/08/2014, 2:35:56 AM"

要仅获取应使用的日期

    new Date().toLocaleDateString();

>> "09/08/2014"

只得到你应该使用的时间

    new Date().toLocaleTimeString();

>> "2:35:56 AM"

或者,如果您只想以美国英语没有AM / PM的格式显示时间hh:mm

    new Date().toLocaleTimeString('en-US', { hour12: false, 
                                             hour: "numeric", 
                                             minute: "numeric"});
>> "02:35"

或英式英语

    new Date().toLocaleTimeString('en-GB', { hour: "numeric", 
                                             minute: "numeric"});

>> "02:35"

在此处阅读更多内容