Ajax获取dd/mm/yyyy格式的日期

3
var d = new Date();
    var today_date = d.getDate() + '/' + month_name[d.getMonth()] + '/' + d.getFullYear();

这是我获取日期的方法。它能够正常工作,但存在一个小问题。对于今天的日期——2011年6月7日,它返回的是7/11/2011,而我希望它返回的是07/11/2011。

有人知道怎么做吗?


如果您正在使用Jquery,请更改脚本中的格式。 - Developer
4个回答

2

好的,你可以简单地检查d.getDate()的长度,如果为1,则在开头添加一个零。但是你可能想看一下format()来格式化你的日期?


1

1

像这样:

("0"+1).slice(-2);  // returns 01
("0"+10).slice(-2); // returns 10

完整示例:

var d = new Date(2011,1,1); // 1-Feb-2011
var today_date =
    ("0" + d.getDate()).slice(-2) + "/" +
    ("0" + (d.getMonth() + 1)).slice(-2) + "/" + 
    d.getFullYear();
// 01/02/2011

1
月份名称应该是01 02 03等,而不是Jan Feb,但除此之外,谢谢,它起作用了。 - Beginner
@初学者:我对我的答案进行了微小的修改。 - Salman A

1

试试这个,这个更容易理解:

  var currentTime = new Date();
  var day = currentTime.getDate();
  var month = currentTime.getMonth() + 1;
  var year = currentTime.getFullYear();

  if (day < 10){
  day = "0" + day;
  }

  if (month < 10){
  month = "0" + month;
  }

  var today_date = day + "/" + month + "/" + year;
  document.write(today_date.toString());

结果是:

2011年7月5日


1
我喜欢这个解决方案。它不太神秘。这会让后面跟进的人更容易理解。我做了一个小改动。var month = currentTime.getMonth(); 给出从0开始的月份编号,因此为了以1-12格式获取当前月份,我做了 var month = currentTime.getMonth() + 1; 的修改。 - Grayson
感谢@Grayson指出这个“月份问题”。我已经更新了我的答案。不幸的是,有时_JavaScript_并不遵守最少惊讶原则。 - Michał Kuliński

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接