我试图在选择日期时向用户发出警报。例如,当用户选择2018-09-13时,警报将显示消息“ 7天后将是2018-09-20”。但是,警报消息显示为2018-09-137。
<input type="date" name = "date" id = "date" onchange="javascript:var chooseDate=(this.value)+7; alert('7 days later will be '+chooseDate);" >
我应该如何在日期中增加天数?请帮助,谢谢。
答案 0 :(得分:1)
this.value
将使用格式string
以YYYY-MM-DD
的形式返回日期,因此,如果您“添加” 7
,它将是YYYY-MM-DD7
。您可以做的是创建一个新的Date
对象,然后添加所需的日期,如下所示:
var chooseDate=new Date(this.value);
chooseDate.setDate(chooseDate.getDate()+7);
alert('7 days later will be '+chooseDate);
但是,这将为您提供完整的日期,这可能是您不想要的,因此您必须获取实际需要的值,例如:
var chooseDate=new Date(this.value);
chooseDate.setDate(chooseDate.getUTCDate()+7);
var futureDate = chooseDate.getFullYear()+'-'+('0'+(chooseDate.getMonth()+1)).slice(-2)+'-'+('0'+(chooseDate.getDate())).slice(-2);
alert('7 days later will be '+chooseDate);
这里有一个有效的示例:
<input type="date" name = "date" id = "date" onchange="var chooseDate=new Date(this.value);chooseDate.setDate(chooseDate.getUTCDate()+7);var futureDate=chooseDate.getFullYear()+'-'+('0'+(chooseDate.getMonth()+1)).slice(-2)+'-'+('0'+(chooseDate.getDate())).slice(-2);alert('7 days later will be '+futureDate);" >
答案 1 :(得分:0)
如何:
addDays = function(input_date, days) {
var date = new Date(input_date);
date.setDate(date.getDate() + days);
return date;
}
然后在onchange()中调用do addDays(this.value,7)。
答案 2 :(得分:0)
尝试这个...
library(lpSolve)
# test data
set.seed(123)
n <- 4
m <- matrix(sample(0:1, n*n, replace = TRUE), n)
cs <- colSums(m)
rs <- rowSums(m)
# solve using linear programming
obj <- numeric(n*n)
const.mat <- rbind(t(rep(1, n) %x% diag(n)), t(diag(n) %x% rep(1, n)))
const.rhs <- c(rs, cs)
res <- lp("min", obj, const.mat, "=", const.rhs, all.bin = TRUE)
soln <- matrix(res$solution, n)
# check that row and column totals of soln are correct
all.equal(c(rowSums(soln), colSums(soln)), c(rs, cs))
## [1] TRUE