周一阵列

时间:2014-04-28 21:27:03

标签: ember.js

我是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

1 个答案:

答案 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))