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

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


当前回答

Here is my work around clock full format with day, date, year and time and make Sure the date of your PC is set to the right date and if you are using PHP make sure in php.ini date.timezone= xx where xx your current timezone function startTime() { var today=new Date(); // 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 var suffixes = ['','st','nd','rd','th','th','th','th','th','th','th','th','th','th','th','th','th','th','th','th','th','st','nd','rd','th','th','th','th','th','th','th','st','nd','rd']; var weekday = new Array(7); weekday[0] = "Sunday"; weekday[1] = "Monday"; weekday[2] = "Tuesday"; weekday[3] = "Wednesday"; weekday[4] = "Thursday"; weekday[5] = "Friday"; weekday[6] = "Saturday"; var month = new Array(12); month[0] = "January"; month[1] = "February"; month[2] = "March"; month[3] = "April"; month[4] = "May"; month[5] = "June"; month[6] = "July"; month[7] = "August"; month[8] = "September"; month[9] = "October"; month[10] = "November"; month[11] = "December"; document.getElementById('txt').innerHTML=(weekday[today.getDay()] + ',' + " " + today.getDate()+'<sup>'+suffixes[today.getDate()]+'</sup>' + ' of' + " " + month[today.getMonth()] + " " + today.getFullYear() + ' Time Now ' + today.toLocaleTimeString()); t=setTimeout(function(){startTime()},500); } <style> sup { vertical-align: super; font-size: smaller; } </style> <html> <body onload="startTime()"> <div id="txt"></div> </body> </html>

其他回答

我开发史蒂夫的答案,以确切地了解OP需要什么

new Date().toLocaleString().replace(',','')

.toLocaleString console.log(新日期()().replace (',',''));

. getmonth()返回一个从零开始的数字,所以为了得到正确的月份,你需要加1,所以在五月调用. getmonth()将返回4而不是5。

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

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

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

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

我善意的回答是使用这个小小的JS: https://github.com/rhroyston/clock-js

clock.now   --> 1462248501241
clock.time  --> 11:08 PM
clock.weekday   --> monday
clock.day   --> 2
clock.month --> may
clock.year  --> 2016
clock.since(1462245888784)  --> 44 minutes
clock.until(1462255888784)  --> 2 hours
clock.what.time(1462245888784)  --> 10:24 PM
clock.what.weekday(1461968554458)   --> friday
clock.what.day('14622458887 84')    --> 2
clock.what.month(1461968554458) --> april
clock.what.year('1461968554458')    --> 2016
clock.what.time()   --> 11:11 PM
clock.what.weekday('14619685abcd')  -->     clock.js error : expected unix timestamp as argument
clock.unit.seconds  --> 1000
clock.unit.minutes  --> 60000
clock.unit.hours    --> 3600000
clock.unit.days --> 86400000
clock.unit.weeks    --> 604800000
clock.unit.months   --> 2628002880
clock.unit.years    --> 31536000000

getDay()获取星期几。3号是星期三。你需要getDate(),它会返回18。

同样,getMonth()从0开始,你需要加1来得到4(四月)。

演示:http://jsfiddle.net/4zVxp/

对于真正的mysql样式输出使用下面的函数:2019/02/28 15:33:12

如果你点击下面的“运行代码片段”按钮 它将向您展示一个简单的实时数字时钟示例 演示程序将出现在代码片段的下面。

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; } // example usage: realtime clock setInterval(function(){ currentTime = getDateTime(); document.getElementById("digital-clock").innerHTML = currentTime; }, 1000); <div id="digital-clock"></div>