Jquery 将日期字符串dd mm yy转换为moment.js有效日期

Jquery 将日期字符串dd mm yy转换为moment.js有效日期,jquery,date,datepicker,momentjs,Jquery,Date,Datepicker,Momentjs,从datepicker到moment.js的转换问题在SO中已经出现了很多次。遗憾的是,在尝试了我在这里和网上找到的各种方法提出的10种不同的解决方案之后,我仍然无法以我想要的方式成功地从datepicker转换到moment.js 我要做的是在jQuery datepicker中获取所选日期,在本例中,console.log将其记录在末尾,并获取“27-7-2016”作为日期选择器日期 $( "#datepicker" ).datepicker({ dateFormat: "dd-mm

从datepicker到moment.js的转换问题在SO中已经出现了很多次。遗憾的是,在尝试了我在这里和网上找到的各种方法提出的10种不同的解决方案之后,我仍然无法以我想要的方式成功地从datepicker转换到moment.js

我要做的是在jQuery datepicker中获取所选日期,在本例中,
console.log将其记录在末尾,并获取“27-7-2016”作为日期选择器日期

$( "#datepicker" ).datepicker({
    dateFormat: "dd-mm-yy",
    maxDate: 6,
    minDate: 0,
    onSelect: function(dateText){
        startDate = dateText;
        selectedTemp = dateText.split("-");
        gap = moment(selectedTemp[2]+"-"+selectedTemp[1]+"-"+selectedTemp[0]).fromNow();'

        console.log(startDate);
   }
});
gap
变量中,我有一个矩对象,它给我一个类似于“10小时内”或“2天内”的值。稍后,我将该字符串解析为一个数字,以了解所选日期的天数:

gap = parseInt(gap);
例如,我想将datepicker的日期增加2天,即使用我发现的2天间隔从“27-7-2016”增加到“29-7-2016”。 到目前为止,这总是导致我得到一个完整的moment.js对象,或者出现一些错误,例如无效,或者
.add()
方法不起作用等等

我还想将结果“29-7-2016”转换为“2016-7-29”,但由于它不是一个字符串,我找不到这样做的方法,并且总是遇到格式问题

谢谢。

该方法返回字符串,而不是片刻对象。如果要计算当前日期和选定日期之间的差异,可以使用

如果你有一个力矩对象,你可以用它来修改它。请注意,
add
修改原始对象的力矩

使用可以获得一个字符串,该字符串以您喜欢的格式表示力矩对象

希望以下示例有助于理解如何使用矩:

$(“#日期选择器”)。日期选择器({
日期格式:“dd-mm-yy”,
最长日期:6,
minDate:0,
onSelect:函数(日期文本){
//将所选字符串解析为矩对象
var momDate=时刻(日期文本'DD-MM-YYYY');
//获取间隙字符串
//差距可以是“10小时内”
var gap=momDate.fromNow();
//以整数形式获取差分
var gapInt=momDate.diff(矩().startOf('d'),'d');
//在这里,可以使用add()修改力矩对象
添加(gapInt,“天”);
//将日期格式化为您喜欢的格式
var dateFormatted=momDate.format('YYYY-M-DD');
console.log(日期格式);
}
});

谢谢!这确实澄清了问题。我认为问题在于fromNow没有创建瞬间对象。