请问怎么用js把两个字符串转为时间格式,并获取两个时间之间的月份数,如'2017-01-01','2018-17-12'

如'2017-01-01','2018-12-12'

//不知道这是不是你想要的,这不需要转换为时间格式
function getNums(str){
    var reg = /(\d+)[^\d]*(\d+)[^\d]*(\d+)/g;
    var numArr = reg.exec(str);
    return [parseInt(numArr[1]),parseInt(numArr[2])-1,parseInt(numArr[3])];
}
function getMonths(s1,s2){
    var a1 = getNums(s1);
    var a2 = getNums(s2);
    return (a2[0]-a1[0])*12+a2[1]-a1[1];
}
console.log(getMonths("2017-01-01","2018-12-12"));

温馨提示:答案为网友推荐,仅供参考
第1个回答  2017-11-30

单纯计算月数的话,不需要转时间的

funcation getMonths(sDate1,sDate2){
    //var date1 = new Date('2017-01-01');//这是转时间
    //var date2 = new Date('2018-12-12');//这是转时间
    var ssDate1 = sDate1.split("-");
    var ssDate2 = sDate2.split("-");
    var months = (ssDate2[0] - ssDate1[0]) * 12 + (ssDate2[1] - ssDate1[1]) + 1;
}

第2个回答  2017-11-30
js 把字符串转化为日期参考代码如下:
var s ='2017-04-18 09:16:15';
s = s.replace(/-/g,"/");
var date = new Date(s );

解释说明:
/-/g 是正则表达式
表示将所有短横线-替换为斜杠/
其中g表示全局替换本回答被网友采纳
相似回答