我希望当前时间Saturday, October 13, 2018 9:32 PM
介于Saturday, October 13, 2018 9:00 PM
和Sunday, October 14, 2018 12:00 AM
之间,但是js表示不是。知道这怎么可能吗?
var currentTime = moment();
console.log("moment(): ", moment().format('LLLL'))
console.log("currentTime: ", currentTime.format('LLLL'))
var start_time = moment(currentTime.format('YYYY-MM-DD') + ' ' + '21:00:00');
var currentTimePlusDay = currentTime.add(1,'days');
var extra = currentTimePlusDay.format('YYYY-MM-DD') + ' ';
var end_time = moment(extra + '00:00:00');
console.log("start_time: ", start_time.format('LLLL'))
console.log("end_time: ", end_time.format('LLLL'))
var midnight;
console.log("moment(currentTime).isBetween(start_time, end_time): ", moment(currentTime).isBetween(start_time, end_time))
使用时区:America/New_York
,输出:
moment(): Saturday, October 13, 2018 9:32 PM
currentTime: Saturday, October 13, 2018 9:32 PM
start_time: Saturday, October 13, 2018 9:00 PM
end_time: Sunday, October 14, 2018 12:00 AM
moment(currentTime).isBetween(start_time, end_time): false
答案 0 :(得分:2)
我在您的作业中将currentTime
更改(克隆)为currentTimePlusDay
为:
var currentTime = moment();
console.log("moment(): ", moment().format('LLLL'))
console.log("currentTime: ", currentTime.format('LLLL'))
var start_time = moment(currentTime.format('YYYY-MM-DD'));
var currentTimePlusDay = currentTime.clone().add(1,'days'); // <--- THIS
var extra = currentTimePlusDay.format('YYYY-MM-DD') + ' ';
var end_time = moment(extra + '00:00:00');
console.log("start_time: ", start_time.format('LLLL'))
console.log("end_time: ", end_time.format('LLLL'))
console.log("currenttime: ", currentTime.format('LLLL'))
console.log("moment(currentTime).isBetween(start_time, end_time): ", moment(currentTime).isBetween(start_time, end_time))
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.22.2/moment.js"></script>
如果您当天不这样做,那么最终添加的currentTime
会发生变化,从而使您的范围介于两者之间。
还更改了开始时间,使其不从21:00:00
开始,以确保其有效。但是clone()
的变化是不同的。看看是否有帮助。