如何在ReactJS中创建最近几个小时的数组?

时间:2019-05-08 08:26:09

标签: javascript arrays reactjs date

我需要在我的react应用程序中获取最近12个小时的数组,但到目前为止我只有2个小时,而且我正在以最乏味的方式进行操作。

这是我当前有效的代码:

class Example extends Component {
  constructor() {
    super();
    this.now = new Date();
    this.hrAgo = new Date(this.now-3600000).toISOString();
    this.twoHrsAgo = new Date(this.now-2*3600000).toISOString();
    this.state = {
      timeData: [this.twoHrsAgo,this.hrAgo,this.now.toISOString()]
    }
  }
  componentDidMount() {
    console.log("timeData: ",this.state.timeData);
  };
/// other function below

它将在我的控制台中显示如下内容:

["2019-05-08T06:19:41.744Z", "2019-05-08T07:19:41.744Z", "2019-05-08T08:19:41.744Z"]

如何更好地利用过去的12小时?

2 个答案:

答案 0 :(得分:0)

使用数组并尝试按以下方式进行推送:

constructor() {
    super();
    this.now = new Date();
    let testArr= [];
    for(let i=0;i<12;i++){
    testArr.push(new Date(this.now-i*3600000).toISOString());
    }
    this.state = {
      timeData: testArr
    }
  }
  componentDidMount() {
    console.log("timeData: ",this.state.timeData);
  }

小提琴样本:Fiddle link

答案 1 :(得分:0)

您可以使用map创建数组。 新的Array(12)创建空并用空字符串填充它。

const now = new Date();
const hourArray = new Array(12).fill("").map((v, i) => (new Date(now - 3600000*i)).toISOStrting())