在javascript中使用日期

在javascript中使用日期,javascript,date,Javascript,Date,我在Javascript中使用日期时遇到问题,在PHP中,您使用类似日期(“Y-m-dh:is”)的东西来检索特定的日期和时间,我如何在Javascript中实现这一点?getMonth()方法只返回1位数,我真的需要它们是2位数您可以从Date类中选择年份、分钟等。您可以使用下面的例子中的一些技巧每月获得2位数。e、 g Date.prototype.getLongMonth = function() { var month = this.getMonth(); if (Str

我在Javascript中使用日期时遇到问题,在PHP中,您使用类似日期(“Y-m-dh:is”)的东西来检索特定的日期和时间,我如何在Javascript中实现这一点?getMonth()方法只返回1位数,我真的需要它们是2位数

您可以从Date类中选择年份、分钟等。您可以使用下面的例子中的一些技巧每月获得2位数。e、 g

Date.prototype.getLongMonth = function() {
    var month = this.getMonth();
    if (String(month).length == 1) month = '0'.concat(month);
    return month;
}

var now = new Date();
var theDate = now.getFullYear() + '-' + now.getLongMonth() + '-' + now.getDate() + ' ' + now.getHours() + ':' + now.getMinutes() + ':' + now.getSeconds();
console.log(theDate); // result : 2013-02-17 12:41:2

当你得到的时候,为什么不先加0试试这个:

function dateToYMD(date) {
var d = date.getDate();
var m = date.getMonth() + 1;
var y = date.getFullYear();
return '' + y + '-' + (m<=9 ? '0' + m : m) + '-' + (d <= 9 ? '0' + d : d) + ' ' + date.getHours() + ':' + date.getMinutes() + ':' + date.getSeconds();
}
var d = new Date();
alert(dateToYMD(d));
函数dateToYMD(日期){
var d=date.getDate();
var m=date.getMonth()+1;
var y=date.getFullYear();

返回'+y+'-'+'(m此代码根据@mplungjan--(请向他致敬)给出的指针进行调整) 还可以查看他的解决方案,这是一个更好的用于日期数字的解决方案

var str = 10; // month-digit from getMonth()

function pad(val) {
     return "0" + val;
}

var month =  str < 10 ? pad(str) : str;
console.log(month);
var str=10;//来自getMonth()的月份数字
功能板(val){
返回“0”+val;
}
变量月=str<10?垫(str):str;
控制台日志(月);

因为我对几乎所有的答案都发表了评论,所以我最好发表我的建议


他现在说。getMonth()这将以1位数字返回月份,他希望以2位数字返回,这比if(mmStill错了,仍然返回1月份的00)要多得多的代码。这有什么用呢?不知怎的,我得到的是2013-02-17 1:56:59而不是2013-03-17 06:56 59我建议使用该解决方案,所以你可以输入:if(嗯,你能试试我的答案吗?@mplungjan,我知道,我只想让他知道,就是这样。:)你的可能副本丢失了小时、分钟和秒。我不熟悉“pad”,无法将其作为本机函数返回,所以你仍然需要声明此函数。我确实更改了代码以缩短它:)亲爱的朋友,你写了一个函数,返回val,然后返回“0”+num。这已经错过了“else”声明,所以如果我感到困惑,我很抱歉。我只是不明白你在说什么。所以我能说的是,我将感谢你的解决方案。我总是乐于学习新的方法。现在你投票否决我,但你没有给我任何新的东西。如果我忽略了什么,请指定。
function pad(num){if(num>9)return num;return“0”+num}
-我在我的iPhone上-一个打字错误。当你返回时不需要其他东西。我投票否决了你,因为你使问题变得非常复杂,当你的函数不再明显与月份相关时,仍然使用getMonthDigits,不定义月份等等。@mplungjan-谢谢。不定义“月份”的有效点。省略“其他”我觉得这更像是一条捷径。这是一个简洁的好方法。谢谢。选择…)…我修改了代码,这使你的论点成为一个有效的补充。谢谢!
function pad(num) { return ("0"+num).slice(-2); }

function getDisplayDate() {
  var date = new Date();
  return date.getFullYear()+
    "-"+pad(date.getMonth()+1)+
    "-"+pad(date.getDate())+
    " "+pad(date.getHours())+
    ":"+pad(date.getMinutes())+
    ":"+pad(date.getSeconds());
}    
setInterval(function() {
    document.getElementById("time").innerHTML=getDisplayDate(); 
},500);