[英]converting long date to short date with incorrect converting
这是我的长期约会:
Fri Dec 07 2018 05:47:22 GMT+0000
但是当我将其转换为短日期时,它返回了错误的日期:
var date = 'Fri Dec 07 2018 05:47:22 GMT+0000';
var convertedStartDate = new Date(date);
var year = convertedStartDate.getFullYear();
var month = convertedStartDate.getMonth();
var day = convertedStartDate.getDay();
console.log(year+'/'+month+'/'+day)
浏览器的输出:
2018/11/5
var date = 'Fri Dec 07 2018 05:47:22 GMT+0000'; var convertedStartDate = new Date(date); var year = convertedStartDate.getFullYear(); // 2018 var month_index = convertedStartDate.getMonth(); // 11 month name index var weekday_index = convertedStartDate.getDay(); // 5 weekday index var day_date = convertedStartDate.getDate(); // 7 var day_names = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]; var month_names = ["Jan","Feb","Mar","Apr", "May","Jun","Jul","Aug", "Sep","Oct","Nov","Dec"]; var month_name = month_names[month_index]; // Dec var day = day_names[weekday_index]; // Fri console.log(day+" "+day_date+"-"+month_name+"-"+year); // Fri 7-Dec-2018 console.log(year+"/"+(month_index+1)+"/"+day_date); // 2018/12/7
var month = convertedStartDate.getMonth();
这将返回0到11之间的值。原因是您可能会在数组中使用此索引,例如:
var month_names = ["jan","feb", .... "dec"];
console.log(month_names[month]); //dec
但是,如果您只对数值感兴趣,只需加1
var month = convertedStartDate.getMonth() + 1;
至于getDay()
,它将返回一个介于0和6之间的值,这样您就可以像这样使用它:
var day = convertedStartDate.getDay();
var day_names = ['Sun', 'Mon',... ,'Sat'];
console.log(day_names[day]);
但是如果只需要数字值(介于1和28/29/30/31之间),则需要.getDate()
而不是.getDay()
。 但是,在这种情况下,无需添加一个。
var date = 'Fri Dec 07 2018 05:47:22 GMT+0000'; var convertedStartDate = new Date(date); var year = convertedStartDate.getFullYear(); var month = convertedStartDate.getMonth() + 1; var day = convertedStartDate.getDate(); console.log(year+'/'+month+'/'+day)
将getDay()
方法替换为getDate()
并在月份中添加1,因为getMonth()
将在0-11之间返回
看,我添加了工作示例,也希望它能解决问题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.