我需要在我的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小时?
答案 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())