带字符串的javascript日期

带字符串的javascript日期,javascript,date,formatting,Javascript,Date,Formatting,我正在尝试将javascript中的日期从MM/dd/yyyy转换为yyyy/MM/dd 所以这个起作用了: var d = new Date("08/08/2012"); dateString = d.getFullYear() + "/" + d.getMonth() + "/" + d.getDate(); document.write(dateString); var dateString = "08/08/2012"; var d = new Date(dateString); da

我正在尝试将javascript中的日期从MM/dd/yyyy转换为yyyy/MM/dd

所以这个起作用了

var d = new Date("08/08/2012");
dateString = d.getFullYear() + "/" + d.getMonth() + "/" + d.getDate();
document.write(dateString);
var dateString = "08/08/2012";
var d = new Date(dateString);
dateString = d.getFullYear() + "/" + d.getMonth() + "/" + d.getDate();
document.write(dateString);
var dateString = "08/08/2012";
var d = Date.parse(dateString);
dateString = d.getFullYear() + "/" + d.getMonth() + "/" + d.getDate();
document.write(dateString);
产量=2012/7/8

///////////////////////////////////////////////////

这不是而是

var d = new Date("08/08/2012");
dateString = d.getFullYear() + "/" + d.getMonth() + "/" + d.getDate();
document.write(dateString);
var dateString = "08/08/2012";
var d = new Date(dateString);
dateString = d.getFullYear() + "/" + d.getMonth() + "/" + d.getDate();
document.write(dateString);
var dateString = "08/08/2012";
var d = Date.parse(dateString);
dateString = d.getFullYear() + "/" + d.getMonth() + "/" + d.getDate();
document.write(dateString);
而且这也没有:

var d = new Date("08/08/2012");
dateString = d.getFullYear() + "/" + d.getMonth() + "/" + d.getDate();
document.write(dateString);
var dateString = "08/08/2012";
var d = new Date(dateString);
dateString = d.getFullYear() + "/" + d.getMonth() + "/" + d.getDate();
document.write(dateString);
var dateString = "08/08/2012";
var d = Date.parse(dateString);
dateString = d.getFullYear() + "/" + d.getMonth() + "/" + d.getDate();
document.write(dateString);
如何使它与字符串变量一起工作?谢谢

~Myy

那应该行得通。请记住,JavaScript将月份存储为零索引值

如果你想有前导零,那么你必须做一些魔术:

var dateString = "08/08/2012";
var d = new Date(dateString);
dateString = d.getFullYear() + "/" + ('0' + (d.getMonth()+1)).slice(-2) + "/" + ('0' + d.getDate()).slice(-2);
document.write(dateString);​


Date.parse()
示例不起作用的原因是,该函数返回的是时间戳(自1970年以来的毫秒数),而不是日期对象。因此,您不能调用时间戳上的函数,如
getFullYear()

如果您只需要对值重新排序,则可以执行以下操作:

var dateString = "08/08/2012";
var dateElements = dateString.split("/");
var outputDateString = dateElements[2] + "/" + dateElements[0] + "/" + dateElements[1];
document.write(outputDateString );

我可以向MrSlayer确认代码在JSFIDLE中工作

您尝试使用
Date.parse()
时,实际上应该使用
Date(String(dateString))


不要忘记每个月添加1个。

当浏览器试图执行不起作用的代码时,它的控制台记录了什么?您是说希望2012年8月8日打印为2012年7月8日(即,月份从08改为7日)?不,我在使用字符串变量与新日期()时遇到了问题函数。百万美元的问题是为什么
Date.parse
不起作用。@Nick
Date.parse
起作用,但它不返回日期对象。它返回一个时间戳。我发誓我一次又一次地尝试第二个方法,但它不起作用,现在我再次尝试,它起作用了。我想我错过了什么,谢谢你的快速回复@Slayer先生我真希望他们能把函数命名得更好。