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

我有一个用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

任何帮助? 谢谢


调用.getMonth()您需要添加+1以显示正确的月份。 Javascript计数总是从0开始(查看这里查看原因),因此在5调用.getMonth()将返回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对象返回今天的日期和时间。 这些新方法或属性将由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();
    

    为了获得时间和日期,你应该使用

        new Date().toLocaleString();
    
    >> "09/08/2014, 2:35:56 AM"
    

    只能得到你应该使用的日期

        new Date().toLocaleDateString();
    
    >> "09/08/2014"
    

    只得到你应该使用的时间

        new Date().toLocaleTimeString();
    
    >> "2:35:56 AM"
    

    或者,如果您只希望时间格式为hh:mm而没有美国英语的AM / PM格式

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

    或英国英语

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

    在这里阅读更多。


    如果你想真正的MySQL风格日期时间使用这个

    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) {
             month = '0'+month;
        }
        if(day.toString().length == 1) {
             day = '0'+day;
        }   
        if(hour.toString().length == 1) {
             hour = '0'+hour;
        }
        if(minute.toString().length == 1) {
             minute = '0'+minute;
        }
        if(second.toString().length == 1) {
             second = '0'+second;
        }   
        var dateTime = year+'/'+month+'/'+day+' '+hour+':'+minute+':'+second;   
         return dateTime;
    }
    
    链接地址: http://www.djcxy.com/p/77531.html

    上一篇: Getting current date and time in JavaScript

    下一篇: Jquery/JEasyUI How do I get the current date?