有一个日期说
var x = new Date("2012-01-01");
我需要以这种格式显示它 - 2012年1月1日 我怎么能这样做?
x.toDateString()
返回2012年1月1日星期日“
答案 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当地人)。