Javascript 无法将我的日期dd/mm/yyyy格式化为mm/dd/yyyy

Javascript 无法将我的日期dd/mm/yyyy格式化为mm/dd/yyyy,javascript,date,Javascript,Date,我需要你的帮助 我使用前两种日期格式处理服务器返回的长日期。但是,当我将函数dateToMDY(date)调用到第三个div时,日期格式仍然是dd/mm/yyyy。多痛苦啊。我做错了什么?看来一切都井然有序。我错过什么了吗 <!DOCTYPE html> <html> <head> <style type="text/css"> </style> <script type="text/javascript"> fu

我需要你的帮助

我使用前两种日期格式处理服务器返回的长日期。但是,当我将函数dateToMDY(date)调用到第三个div时,日期格式仍然是dd/mm/yyyy。多痛苦啊。我做错了什么?看来一切都井然有序。我错过什么了吗

<!DOCTYPE html>

<html>

<head>

<style type="text/css">

</style>

<script type="text/javascript">
function test() {

var x = "Mon Mar 5 00:00:00 EST 2012"

var y = "05/03/2012"

document.getElementById('divy1').innerHTML = dateToDMY(new Date(x))

document.getElementById('divy2').innerHTML = dateToMDY(new Date(x))

document.getElementById('divy3').innerHTML = dateToMDY(new Date(y))

}
function dateToDMY(date) {
    var d = date.getDate();
    var m = date.getMonth() + 1;
    var y = date.getFullYear();
    return ''+  (d <= 9 ? '0' + d : d)  +'/'+ (m<=9 ? '0' + m : m) + '/' + y;
}

function dateToMDY(date) {
    var d = date.getDate();
    var m = date.getMonth() + 1;
    var y = date.getFullYear();
    return ''+ (m<=9 ? '0' + m : m)+'/'+ (d <= 9 ? '0' + d : d)  + '/' + y;
}

</script>

</head>

<body onload="test()">

dd/mm/yyyy (DatePicker)
<div id="divy1"></div>
<br>
mm/dd/yyyy (SQL)
<div id="divy2"></div>
<br>
Default Date String should be converted to mm/dd/yyyy
<div id="divy3"></div>

</body>

</html>

功能测试(){
var x=“2012年东部时间3月5日星期一00:00:00”
var y=“2012年3月5日”
document.getElementById('divy1')。innerHTML=dateToDMY(新日期(x))
document.getElementById('divy2')。innerHTML=dateToMDY(新日期(x))
document.getElementById('divy3')。innerHTML=dateToMDY(新日期(y))
}
函数DateToMy(日期){
var d=date.getDate();
var m=date.getMonth()+1;
var y=date.getFullYear();

返回“”+(d这里的问题是
新日期()
。它不知道提供的日期“2012年3月5日”是3月5日。它假设是5月3日。现在就这样做。

正如您所看到的
新日期('2012年3月5日星期一00:00东部标准时间')
新日期('2012年3月5日')
则不同,因为根据解析格式为“mm/dd/yyyy”,您可以尝试类似的smth

var yDate = y.split('/');

document.getElementById('divy3').innerHTML=dateToMDY(新日期([yDate,yDate[0],yDate[2]]].join('/'));

默认情况下,它采用mm/dd/yyyyy格式。检查此项:有趣的活动:console.log dateToMDY中的d和m值以查看您的区域设置对新日期的看法(“2012年3月5日”)意思是。就像一个符咒。日期之间的转换是如此混乱=\
var yDate = y.split('/');