JavaScript日期与月份冲突

时间:2016-11-24 07:37:27

标签: javascript

您好我正在使用以下代码格式化我的日期字符串

var monthNames = ["Jan", "Feb", "Mar", "Apr", 
                  "May", "Jun", "Jul", "Aug", 
                  "Sep", "Oct", "Nov", "Dec"];
var AddedDate = new Date('04/11/2016 11:36:15');
alert(AddedDate.getDate() + ' ' + monthNames[AddedDate.getMonth()] + '\'' + AddedDate.getYear());

此处输入日期格式为DD / MM / YYYY hh:mm:ss 但是当我getDate()时,它给出的日期为11,而getmonth()给出了4月。我该如何解决这个问题。请帮忙。 还有一种方法可以让2016年成为16岁。

我得到的当前输出是11 Apr'116

预期输出为04 Nov'16

4 个答案:

答案 0 :(得分:2)

如果你想要dd / mm / year格式的日期。我取消了时间部分并将字符串拆分成数组并创建了日期,月份和年份的日期

为了获得短暂的一年,我采用了substr(2,2)

检查代码段



var monthNames = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"];

var dateString = '04/11/2016 11:36:15';

dateString = dateString.split(' ')[0];

var dateParts = dateString.split("/");

var date = dateParts[2];
var month = dateParts[1] - 1;


var dateObject = new Date(date, month, dateParts[0]);


var yearShort = dateObject.getFullYear().toString()
alert(dateObject.getDate() + ' ' + monthNames[dateObject.getMonth()] + '\'' + yearShort);




希望有所帮助

答案 1 :(得分:1)

Javascript中的默认日期字符串格式为mm/dd/yyyy。因此,在您的情况下,它被视为11 April 2016。对于月份本身,javascript函数getMonth()将返回基于0的索引中的月份数。所以April == 3。 要获得年份2016,您应该使用getFullYear()代替

如果您想强制javascript获取输入dd/mm/yyyy您必须自己动手,如下所示:

var myDate = "04/11/2016".split("/");
var AddedDate = new Date(myDate[2], myDate[1] - 1, myDate[0]);

答案 2 :(得分:0)

刚做new Date('11/04/2016 11:36:15');

格式为月/日/年等。

答案 3 :(得分:0)

您将错误的日期格式传递给new Date()。有效日期字符串格式为here

  

ISO日期:“2015-03-25”(国际标准)   
  短日期:“2015年3月25日”   
  长日期:“2015年3月25日”或“2015年3月25日”   
  完整日期:“2015年3月25日星期三”