如何使用Javascript 2012年1月1日以此格式显示日期

时间:2014-07-01 00:32:29

标签: javascript date

有一个日期说

var x = new Date("2012-01-01");

我需要以这种格式显示它 - 2012年1月1日 我怎么能这样做?

x.toDateString()

返回2012年1月1日星期日“

2 个答案:

答案 0 :(得分:3)

我总是这样做:

var monthsArr = new Array("Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec");
var day = x.getDate();
var month = x.getMonth();
var year = x.getFullYear();

var date = monthsArr[month]+" "+day+", "+year;

可能有一种更好的方法可以让我知道,但这应该可以让你得到你想要的东西。

答案 1 :(得分:1)

User3669154具有格式化所需的答案(尽管它作为一个函数会更好),但是您不应该将日期字符串传递给Date构造函数。手动解析字符串以创建Date对象:

// Create a date object given yyyy-mm-dd
function parseYMD(s) {
  var b = s.split(/\D+/);
  return new Date(b[0], --b[1], b[2]);
}

请注意像" 2012-01-01"在符合标准的浏览器中将被视为UTC,但在符合ISO 8601标准和ECMA-262 ed 6草案的其他浏览器中则视为本地。因此,如果您所在的地区的时区为UTC-05:00,那么:

new Date('2012-01-01')

会在某些浏览器中创建一个Date对象,其时间相当于2012-01-01T00:00:00Z(即2011-12-31 19:00:00 local)但2012-01-01T05:00:00Z(即2012-01-01 00:00:00当地人)。