任何想法,我怎么能在6天之内完成一个知道日期的系统,才能使我根据实际日期显示一些信息。例如:第1天:信息第2天:信息2,但是我不知道如何使系统知道今天是5,明天将是6,然后将是1,然后以这种方式再次达到6。星期六。
问题是今天是第5天,明天是第6天。示例:取决于一天是1,2,3,4,5还是6天,星期一可以是1,2天, 3、4、5或6视情况而定。我想要一种用日期来计算日期的方法。今天2月18日是第5天,那么哪一天将是2月26日?。
现在我的代码中有这个,但是我被卡住了:
//Definiendo Fecha
var hoy = new Date();
var dd = hoy.getDate();
var mm = hoy.getMonth() + 1; //January is 0!
var yyyy = hoy.getFullYear();
if (dd < 10) {
dd = "0" + dd;
}
if (mm < 10) {
mm = "0" + mm;
}
hoy = dd + "/" + mm + "/" + yyyy;
//Fin
document.getElementById("fecha").innerHTML = hoy;
contador = 4
function obtenerDia() {
if (!(hoy = "17/02/2019")) {
contador++
}else {
console.log("Algo pasa.")
}
}
非常感谢您的帮助。
上下文: 我正在建立时间表,因此当它是EX时,它应该显示当天正确的时间表:Day 1 ... 5,取决于哪一天是正确的一天。
答案 0 :(得分:0)
对于通用解决方案,请考虑:
function getDayNumber(baseDate, targetDate, daysInCycle) {
var startOfBaseDate = new Date(baseDate).setHours(0, 0, 0, 0);
var startOfTargetDate = new Date(targetDate).setHours(0, 0, 0, 0);
var differenceInDays = Math.round((startOfTargetDate - startOfBaseDate) / 864e5);
return ((differenceInDays % daysInCycle + daysInCycle) % daysInCycle) + 1;
}
baseDate
是与周期的“第1天”相对应的任何Date
对象(或时间戳记)。targetDate
是您希望为其查找日期的Date
对象(或时间戳)。daysInCycle
是周期重复之前的天数,例如6
代表六天的周期。示例:
getDayNumber(new Date(2019, 1, 18), new Date(2019, 1, 15), 6) //=> 4
getDayNumber(new Date(2019, 1, 18), new Date(2019, 1, 16), 6) //=> 5
getDayNumber(new Date(2019, 1, 18), new Date(2019, 1, 17), 6) //=> 6
getDayNumber(new Date(2019, 1, 18), new Date(2019, 1, 18), 6) //=> 1
getDayNumber(new Date(2019, 1, 18), new Date(2019, 1, 19), 6) //=> 2
getDayNumber(new Date(2019, 1, 18), new Date(2019, 1, 20), 6) //=> 3
getDayNumber(new Date(2019, 1, 18), new Date(2019, 1, 21), 6) //=> 4
getDayNumber(new Date(2019, 1, 18), new Date(2019, 1, 22), 6) //=> 5
getDayNumber(new Date(2019, 1, 18), new Date(2019, 1, 23), 6) //=> 6
getDayNumber(new Date(2019, 1, 18), new Date(2019, 1, 24), 6) //=> 1
getDayNumber(new Date(2019, 1, 18), new Date(2019, 1, 25), 6) //=> 2
getDayNumber(new Date(2019, 1, 18), new Date(2019, 1, 26), 6) //=> 3
对于baseDate
或targetDate
,如果要使用UTC日作为基础,则可以通过Date.UTC(2019, 1, 18)
。
对于targetDate
,您可以传递new Date()
或Date.now()
来使用当前时间戳。
还请注意,该函数的最后一行使用给定here的模数解,以确保正确处理负数(基准日期之前的日期)。