我有一种返回日期的格式,我需要将其解析为其他一些我觉得有点复杂的东西。
数据格式例如是Mon Dec 24 2018 9:00:00
,例如startDate
,例如是Friday Dec 28 2018 17:00:00
,例如endTime
。这里发生的是,我选择我希望某人在星期一的每天9点至17点开始工作,但是我的数据使他看起来好像不停地工作。
我尝试过将其映射,并将其放在一周中的几天以及开始和结束时间放置到对象上,但是我遇到了一个问题,因为我创建的对象类似
dates : {
monday: {
start: 9:00,
end: 18:00
},
tuesday: {
start:9:00,
end:18:00
}
// etc for everyday of the week
}
但是,例如,如果我只需要星期一至星期四,那会是个问题。任何人都有任何想法,我该如何以其他方式做到这一点?我当时正在考虑使用moment.js
。
答案 0 :(得分:0)
我不确定是否理解您的问题,但是我想您要列出两个不同日期之间的所有日期,这是一个使用moment.isSameOrBefore和{{3}进行迭代的函数示例}函数,希望有帮助:
$('#submit').removeAttr('disabled');
function toDays(startDateString, endDateString) {
const startDate = moment(startDateString, 'dddd MMM DD YYYY');
const endDate = moment(endDateString, 'dddd MMM DD YYYY');
const dates = {};
while(startDate.isSameOrBefore(endDate, 'day')) {
const currentDay = startDate.format('dddd');
dates[currentDay] = {start:'9:00', end:'18:00'};
startDate.add(1, 'days');
}
return dates;
}
const result = toDays('Monday Dec 24 2018', 'Friday Dec 28 2018');
console.log(result);