我不确定这是否真的是一个 moment.js 问题,但就是这样。从日期范围小部件中,我选择了“03-01-2015 12:00 AM - 04-30-2015 11:59 PM”的日期时间。startDate 和 endDate 都是时刻对象,根据 console.log 输出的前两行,传递给回调函数似乎是正确的。但是,如果我基于 startDate.valueOf() 创建一个新的时刻实例并再次打印出格式化的日期字符串,则新的时刻对象会显示不同的时间戳(提前一小时)。下面是代码片段:
this._daterangepicker = this.$('#dateTimeRange').daterangepicker({
timePicker : true,
timePickerIncrement : 1,
format : 'MM/DD/YYYY hh:mm A'
}, function(startDate, endDate, label) {
let searchController = self.get('controller');
console.log(`time picker date start ${startDate.format('MM-DD-YYYY hh:mm A')}`);
console.log(`time picker date end ${endDate.format('MM-DD-YYYY hh:mm A')}`);
console.log(`time picker reformat date start ${moment(startDate.valueOf()).format('MM-DD-YYYY hh:mm A')}`);
console.log(`time picker reformat date end ${moment(endDate.valueOf()).format('MM-DD-YYYY hh:mm A')}`);
console.log(`original ${startDate.valueOf()} - reformat ${moment(startDate.valueOf()).valueOf()}`);
});
这是输出:
time picker date start 03-01-2015 12:00 AM
time picker date end 04-30-2015 11:59 PM
time picker reformat date start 02-28-2015 11:00 PM
time picker reformat date end 04-30-2015 11:59 PM
original 1425193200000 - reformat 1425193200000
我希望开始日期保持为“03-01-2015 12:00 AM”,但现在是“02-28-2015 11:00 PM”。任何想法?谢谢。