【问题标题】:Get the days of the week starting from today获取从今天开始的星期几
【发布时间】:2018-07-31 14:37:10
【问题描述】:

我正在实现一个图表来显示每日数据。目前我只能写静态数据之类的。

data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun']

我如何编写一个函数来从当前日期和时间开始。

感谢任何帮助。谢谢

【问题讨论】:

标签: javascript date


【解决方案1】:

这里的这个函数将一遍又一遍地填充一个数组,从一周中的当天开始,Mon..Sunn 时间:

function populateDateArray(n = 7) {
    var daysInAWeek = [ 'Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat' ];
    var returnValue = new Array(n);
    var currentDay = (new Date().getDay()); //0 = sunday
    for (var i = 0; i < n; i++) {
        returnValue[i] = daysInAWeek[(currentDay++) % 7];
    }
    return returnValue;
}

我们所做的是通过 new Date().getDay() 获取当前星期几 - 这将以数字形式返回日期(0 = 星期日,1 = 星期一.... 6 = 星期六)。

之后,我们迭代n 次,从current day of the week + 1 中获取daysInAWeek。这通常会导致溢出,因此我们将取此结果的modulo 7,它将值绑定在0..6 之间。

因此,当我们到达 saturday 时,它将循环回到 daysInAWeek 的开头并转到 sunday(然后一遍又一遍) .

用法:var days = populateDateArray(28); //get 28 days from today

【讨论】:

  • 感谢您的工作示例。另外,如果我必须使其每小时工作,我是否必须做类似的事情?
  • 如果您想按小时(1-24 小时)执行此操作,只需添加到 daysInAWeek 数组,然后将 % 7 更改为 % 24(或,对于更通用的情况,% daysInAWeek.length)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2015-07-04
  • 1970-01-01
  • 1970-01-01
  • 2018-02-05
相关资源
最近更新 更多