如何将日期更改事件转换为特定格式

我在我的网站上有约会,我使用daterangepicker和时刻js使用日期。 现在我是所有这些事情的新手,其中一个变量设置日期是

moment().subtract(29, 'days') 

console.log结果为1492930351644 ,类似的moment()结果为1495435951644

现在由我想要的用户手动更改,以更新此值,但我不知道如何使用它。 我使用了jQuery事件如下

 $('#dateRange').on('apply.daterangepicker', function(ev, picker) { var startDate_1 = moment.utc(startDateCal).format('LL'); var endDate_1 = moment.utc(endDateCal).format('LL'); dates.setData('startDateCal',startDate_1); dates.setData('endDateCal',endDate_1); console.log(" changed start date "+dates.getData('startDateCal')); console.log(" changed end date "+dates.getData('endDateCal')); }); 

因此,当我从视图日历中更改并选择日期时,我将进入上述更改事件,但我的输出将是

  changed start date May 21, 2017 changed end date May 22, 2017 

在这里,我想要一个类似于1492930351644的输出或日​​期格式,如moment().subtract(29, 'days')所示moment().subtract(29, 'days')但我不知道如何才能实现这一点。 有帮助吗?

您希望将unix ms时间戳格式另存为data-属性。 你做得对,你只需要使用format日期函数,如下所示:

 moment.utc(startDateCal).format('x') // get the unix timestamp format 

或者当您读回数据时,您应该从中创建一个时刻对象并使用valueOf来获取数字格式:

 moment(dates.getData('startDateCal')).valueOf() 

您好像正在使用固定的startDateCalendDateCal 。 我建议你使用回调函数中的picker属性来从picker本身获取实际日期,如下所示:

 $('#dateRange').on('apply.daterangepicker', function(ev, picker) { var startDate_1 = picker.startDate.format('x'); var endDate_1 = picker.endDate.format('x'); dates.setData('startDateCal',startDate_1); dates.setData('endDateCal',endDate_1); console.log(" changed start date "+dates.getData('startDateCal')); console.log(" changed end date "+dates.getData('endDateCal')); }); 

试试这个改变。 format('LL').format('x')

 var startDate_1 = moment.utc(startDateCal).format('x'); var endDate_1 = moment.utc(endDateCal).format('x');