Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/mercurial/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 - Fatal编程技术网

Javascript 用于显示即将到来的两个月一次的星期五的日期的脚本

Javascript 用于显示即将到来的两个月一次的星期五的日期的脚本,javascript,Javascript,截止日期:截止日期设置为即将到来的双月星期五(例如截止日期为6月14日和6月28日。如果提交在今天(6月26日)完成),则截止日期为6月28日。如果提交日期为6月29日,则截止日期为7月12日。一旦是7月13日,下一个截止日期将为7月26日。依此类推,根据用户提交表单的时间,它将显示正确的截止日期。我查看了其他一些示例,但找不到符合我要求的示例 var currentDate = new Date(new Date().getTime()) document.getElementById('la

截止日期:截止日期设置为即将到来的双月星期五(例如截止日期为6月14日和6月28日。如果提交在今天(6月26日)完成),则截止日期为6月28日。如果提交日期为6月29日,则截止日期为7月12日。一旦是7月13日,下一个截止日期将为7月26日。依此类推,根据用户提交表单的时间,它将显示正确的截止日期。我查看了其他一些示例,但找不到符合我要求的示例

var currentDate = new Date(new Date().getTime())
document.getElementById('lastsubmission').value =
  (currentDate.getDate()) + '/' + (currentDate.getMonth() + 1) + '/' +
  currentDate.getFullYear() + '@' + currentDate.getHours() + ':' +
  currentDate.getMinutes() + ':' + currentDate.getSeconds();

您似乎希望在一个月的第二个或第四个星期五之后获得下一个星期五。例如:

  • 获取该日期月份的第二个星期五
  • 如果在那之前,第二个星期五回来
  • 如果是在那之后,就得到这个月的第四个星期五
  • 如果在那之前,请在第四个星期五返回
  • 如果是在那之后,请在下个月的第二个星期五返回
  • 因此,您可能需要一个函数来获取给定日期的特定星期五,以及一些其他代码来完成其余的逻辑,例如

    //给定日期,返回该月的第n个星期五
    函数getNthFriday(日期,n){
    //第一个星期五
    设d=新日期(日期);
    d、 设定日期(1);
    let day=d.getDay();
    d、 设置日期(d.getDate()+5-(天>5-1:天));
    //设置为第N个星期五
    d、 setDate(d.getDate()+(n-1)*7);
    返回d;
    }
    //在以下日期后的下一个星期五返回:
    //一个月的第二个或第四个星期五。
    函数getCutoffDate(日期){
    //第二个星期五
    var friday=getNthFriday(日期2);
    //如果在之前,请于第二个星期五返回
    如果(日期<星期五){
    星期五返回;
    }
    //第四个星期五
    星期五=第四个星期五(日期4);
    //如果在之前,请于第四个星期五返回
    如果(日期<星期五){
    星期五返回;
    }
    //否则,请返回下个月的第二个星期五
    星期五=getNthFriday(新日期(Date.getFullYear(),Date.getMonth()+1,1),2);
    星期五返回;
    }
    //一些测试
    [
    新日期(2019年4月30日)//2019年5月30日->6月14日
    新日期(2019年5月1日)//2019年6月2日->6月14日
    新日期(2019年5月13日)//2019年6月13日->6月28日
    新日期(2019年5月23日)//2019年6月23日->6月14日
    新日期(2019年5月30日)//2019年6月30日->7月12日
    ].forEach(d=>{
    log(getCutoffDate(d.toString());
    
    });
    您似乎希望在一个月的第二个或第四个星期五之后的下一个星期五。例如:

  • 获取该日期月份的第二个星期五
  • 如果在那之前,第二个星期五回来
  • 如果是在那之后,就得到这个月的第四个星期五
  • 如果在那之前,请在第四个星期五返回
  • 如果是在那之后,请在下个月的第二个星期五返回
  • 因此,您可能需要一个函数来获取给定日期的特定星期五,以及一些其他代码来完成其余的逻辑,例如

    //给定日期,返回该月的第n个星期五
    函数getNthFriday(日期,n){
    //第一个星期五
    设d=新日期(日期);
    d、 设定日期(1);
    let day=d.getDay();
    d、 设置日期(d.getDate()+5-(天>5-1:天));
    //设置为第N个星期五
    d、 setDate(d.getDate()+(n-1)*7);
    返回d;
    }
    //在以下日期后的下一个星期五返回:
    //一个月的第二个或第四个星期五。
    函数getCutoffDate(日期){
    //第二个星期五
    var friday=getNthFriday(日期2);
    //如果在之前,请于第二个星期五返回
    如果(日期<星期五){
    星期五返回;
    }
    //第四个星期五
    星期五=第四个星期五(日期4);
    //如果在之前,请于第四个星期五返回
    如果(日期<星期五){
    星期五返回;
    }
    //否则,请返回下个月的第二个星期五
    星期五=getNthFriday(新日期(Date.getFullYear(),Date.getMonth()+1,1),2);
    星期五返回;
    }
    //一些测试
    [
    新日期(2019年4月30日)//2019年5月30日->6月14日
    新日期(2019年5月1日)//2019年6月2日->6月14日
    新日期(2019年5月13日)//2019年6月13日->6月28日
    新日期(2019年5月23日)//2019年6月23日->6月14日
    新日期(2019年5月30日)//2019年6月30日->7月12日
    ].forEach(d=>{
    log(getCutoffDate(d.toString());
    
    });
    您的截止日期没有明确定义。它们是一个月的第二个和第四个星期五吗?如果是的话,那么您需要一个算法来查找这些日期。不难,但是您尝试了什么?您发布的代码只是格式化了日期,它不会尝试查找第二个和第四个星期五。您是否愿意使用库?我会使用矩.js来处理这个b因为它会为你处理大量的工作。另外,你能澄清一下,当一个月有5个星期五时,哪些星期五是双月的星期五吗?你的截止日期没有明确定义。它们是一个月的第二个和第四个星期五吗?如果是,那么你想要一个算法来找到这些天。不难,但是你尝试了什么?你所用的代码sted只是格式化一个日期,它不会试图找到第二个和第四个星期五。你愿意使用图书馆吗?我会使用momente.js,因为它会为你处理很多工作。另外,你能澄清哪些星期五是双月星期五,而一个月有5个星期五吗?