Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何获得正确的一天?_Javascript_Date_Time_Schedule - Fatal编程技术网

Javascript 如何获得正确的一天?

Javascript 如何获得正确的一天?,javascript,date,time,schedule,Javascript,Date,Time,Schedule,你知道我该怎么做吗?一个知道日期的系统可以让我根据实际日期显示一些信息。例:第1天:信息第2天:信息第2天,但我不知道如何才能让系统知道今天是5,明天将是6,然后将是1,像这样再次到6。不包括星期天和星期六 今天是第五天,明天是第六天。示例:取决于日期,如果是第1、2、3、4、5或6天,则周一可以是第1、2、3、4、5或6天,具体取决于日期。我想要一种用日期计算日期的方法。今天2月18日是第5天,那么哪一天是2月26日前 现在我的代码中有这个,但我被卡住了: //Definiendo Fecha

你知道我该怎么做吗?一个知道日期的系统可以让我根据实际日期显示一些信息。例:第1天:信息第2天:信息第2天,但我不知道如何才能让系统知道今天是5,明天将是6,然后将是1,像这样再次到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.")
  }
}
//Definiendo Fecha
var hoy=新日期();
var dd=hoy.getDate();
var mm=hoy.getMonth()+1//一月是零!
var yyyy=hoy.getFullYear();
如果(dd<10){
dd=“0”+dd;
}
如果(毫米<10){
mm=“0”+mm;
}
hoy=dd+“/”+mm+“/”+yyyy;
//鳍
document.getElementById(“fecha”).innerHTML=hoy;
康塔多=4
函数obtenerDia(){
如果(!(hoy=“17/02/2019”)){
康塔多++
}否则{
log(“algopasa”)
}
}
我将非常感谢你的帮助

背景:
我正在建立一个时间表,所以它应该显示当天的正确时间表,例如:第1天。。。5,取决于哪一天是正确的。

对于一般解决方案,请考虑:

函数getDayNumber(baseDate、targetDate、daysInCycle){ var startOfBaseDate=新日期(baseDate).setHours(0,0,0,0); var startOfTargetDate=新日期(targetDate).setHours(0,0,0,0); var DifferenceDays=数学整轮((startOfTargetDate-startOfBaseDate)/864e5); 返回((差异日%daysInCycle+daysInCycle)%daysInCycle)+1; }
  • baseDate
    是与周期的“第1天”相对应的任何
    Date
    对象(或时间戳)
  • targetDate
    是您希望查找日期的
    Date
    对象(或时间戳)
  • daysInCycle
    是周期重复之前的天数,例如六天周期的
    6
示例:

getDayNumber(新日期(2019,1,18),新日期(2019,1,15),6)/=>4
getDayNumber(新日期(2019,1,18),新日期(2019,1,16),6)/=>5
getDayNumber(新日期(2019,1,18),新日期(2019,1,17),6)/=>6
getDayNumber(新日期(2019,1,18),新日期(2019,1,18),6)/=>1
getDayNumber(新日期(2019,1,18),新日期(2019,1,19),6)/=>2
getDayNumber(新日期(2019,1,18),新日期(2019,1,20),6)/=>3
getDayNumber(新日期(2019,1,18),新日期(2019,1,21),6)/=>4
getDayNumber(新日期(2019,1,18),新日期(2019,1,22),6)/=>5
getDayNumber(新日期(2019,1,18),新日期(2019,1,23),6)/=>6
getDayNumber(新日期(2019,1,18),新日期(2019,1,24),6)/=>1
getDayNumber(新日期(2019,1,18),新日期(2019,1,25),6)/=>2
getDayNumber(新日期(2019,1,18),新日期(2019,1,26),6)/=>3
对于
baseDate
targetDate
,如果希望使用UTC日作为基准,则可以传递
Date.UTC(2019,1,18)

对于
targetDate
,您可以传递
new Date()
Date.now()
以使用当前时间戳


还要注意,函数的最后一行使用了给定的模解,以确保负数(基准日期之前的日期)得到正确处理。

为什么一周只有6天,而其他人只有7天?问另一种方式:这6天周期从哪一天开始?请注意,如果(hoy!=“17/02/2019”)@HereticMonkey整数不是一周中的几天,它们只是一个序列,可以从任何一天开始,跳过周六和周日,例如,如果1是周二,接下来的星期二是6。如果你知道其中一个日期和它所属的日期索引,你只需向前或向后跨过这些日期,并测试天数以跳过Sat和Sun,就可以算出其他日期。相当基本,可能不是最佳性能,但如果最多只有5个步骤,这不是问题。但您需要提供更多关于输入和预期输出的上下文。可能是或甚至是的副本。感谢您提供的一般解决方案。@Santiago-如果这对您有效,请将答案标记为已接受并投票。谢谢