所以,我已经有了一个变量,可以将所有单元格保存在某个列中。 每个单元格都包含一个时间戳,因为它是innerText,格式为yyyy-mm-dd hh:mm,格式为24h。
如何比较具有Date()的字符串以查看字符串是否在下一小时内?
我当时想让一个for循环通过一个带有if函数的数组来遍历该数组:“如果显示的时间在当前时间的一小时内,则将单元格的背景色更改为红色。
for(var i=0; i<column.length;i++){
if(column[i].innerText - Date() < 1hr){ //this line needs work
column[i].style.backgroundColor='#ff000';
} else(){
}
};
我确定可能需要使用某种解析方法或某种方法,但我对此不太熟悉。
注意:我正在使用Tampermonkey将代码注入到我无法控制的页面中,因此时间戳记来了。
答案 0 :(得分:0)
更改此:
library(tidyverse)
library(psych)
ds_of_students <- data.frame(id=(1:4), school=c("public","private"))
ds_of_results <- structure(list(i1 = c(1, 2, 4, 4),
i2 = c(3, 3, 2, 2),
i3 = c(2, 3, 3, 5),
i4 = c(4, 1, 3, 2)),
class = c("tbl_df", "tbl",
"data.frame"), row.names = c(NA, -4L))
ds_of_students %>%
group_by(school) %>%
summarise(n=n(),
id = paste(id, collapse = ",")) %>%
mutate(item2=psych::alpha(ds_of_results[c(id)])$total[1])
alpha(ds_of_results[c(1,3)])$total[1]
对此:
if(column[i].innerText - Date() < 1hr){
它应该可以工作。
答案 1 :(得分:0)
Date构造函数为您完成解析工作。因此,您将只需要这样的东西:
hour = 3600000 //1 hour in ms
nextHour = new Date(column[i].innerText) - new Date()
if(nextHour <= hour && nextHour >= 0) {
//Your code here
}
说明:
由于Javascript日期是基于1970年1月1日午夜以来的毫秒数,因此-(减号)运算符允许您将其视为数字,并将结果数字返回为数字。
答案 2 :(得分:-1)
您可以采用以下方法。在这里,我使用了getUTCHours()
,因为new Date(new Date(columns[i].innerText) - new Date())
会给出UTC时间戳。您可以从here
var columns;
function changecolors() {
columns = document.getElementsByClassName('column');
for (var i = 0; i < columns.length; i++) {
if (new Date(new Date(columns[i].innerText) - new Date()).getUTCHours() < 1) {
columns[i].style.backgroundColor = '#ff0000';
}
};
}
<div class="column">2018-11-18 09:30</div>
<div class="column">2018-11-18 11:00</div>
<button onclick="changecolors()">Change Colors</button>