我是JS / Ember noob,所以请耐心等待。我的应用程序有一个程序模型,具有开始和结束日期。我想添加一个函数/计算属性,它将返回一个涵盖程序的所有周的数组。
基本的伪代码类似于:
weeks: Ember.computed, ->
monday_array = []
if start_date.day_of_week != monday
monday = find monday before start date
else
monday = start_date
end
while monday < end_date
push monday onto monday_array
我不确定从哪里开始并且没有找到ember api或其他在线资源来帮助我。任何帮助将不胜感激。如果重要我正在使用coffescript
答案 0 :(得分:0)
与最初描述的内容略有不同,但它是相同的想法
weeks: Ember.computed 'starts_at', 'ends_at' , ->
arr = []
current_monday = @getMonday(@get('starts_at'))
if Date(@getMonday(@get('ends_at'))) > new Date(Date.today.getDate() + 7)
end_monday = new Date(@getMonday(@get('ends_at')))
else
end_monday = new Date(@getMonday(Date.today.getDate + 21))
while current_monday <= end_monday
newDate = current_monday.setDate(current_monday.getDate() + 7)
current_monday = new Date(newDate)
arr.push(current_monday)
return arr
getMonday: (d) ->
d = new Date(d)
day = d.getDay()
diff = d.getDate() - day + ((if day is 0 then -6 else 1)) # adjust when day is sunday
new Date(d.setDate(diff))