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

how to convert, date change event into particular format

我在我的网站上有日期,我正在使用 daterangepicker 和 moment 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'));

});

所以当我从视图日历更改 select 今天的日期时,我进入了上述更改事件,但我的输出将是

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

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

您想将 unix ms 时间戳格式保存为 data- 属性。你做得对,你只需要像这样使用 format date 函数:

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

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

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

您目前使用的似乎是固定的 startDateCalendDateCal。我建议你在回调函数中使用 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');