使用JavaScript

时间:2017-04-24 07:24:13

标签: javascript

根据今天的日期(新日期()),我想在javascript中获取下周四晚上7点的日期。例如:

如果今天的日期是" 2017年4月24日星期一13:00:00 GMT"我正在寻找结果:

Thu Apr 27 2017 19:00:00 GMT

但是,如果今天的日期是"周四2017年4月27日21:00:00 GMT" (星期四,但是晚上7点)我正在寻找结果:

Thu May 4 2017 19:00:00 GMT

非常感谢任何帮助!

3 个答案:

答案 0 :(得分:1)

好。因此,如果moment.js不可用,请使用毫秒。

OrderDetail

编辑:我可以看到星期四晚上7点是神奇的时刻。在这方面,上述情况并不完全正确;如果我们目前在星期四,无论实际时间如何,它都会将日期提前7天。无论如何,你可能仍会得到这个想法。

答案 1 :(得分:1)

可能类似下面的内容(如果你想要比一小时和一分钟更具体的时间,你可以扩展它):



// day: 0=Sunday, 1=Monday...4=Thursday...
function nextDayAndTime(dayOfWeek, hour, minute) {
  var now = new Date()
  var result = new Date(
                 now.getFullYear(),
                 now.getMonth(),
                 now.getDate() + (7 + dayOfWeek - now.getDay()) % 7,
                 hour,
                 minute)

  if (result < now)
    result.setDate(result.getDate() + 7)
  
  return result
}

console.log(nextDayAndTime(4, 19, 0).toString()) // Thursday 7pm
console.log(nextDayAndTime(0, 19, 0).toString()) // Sunday 7pm
console.log(nextDayAndTime(1, 19, 0).toString()) // Monday 7pm (later today as of now in my timezone)
console.log(nextDayAndTime(1, 7, 30).toString()) // Monday 7:30am (next week, in my timezone)
console.log(nextDayAndTime(2, 19, 0).toString()) // Tuesday 7pm
&#13;
&#13;
&#13;

两个关键位是now.getDate() + (7 + dayOfWeek - now.getDay()) % 7,它从今天开始计算下一个星期四(或指定日期)(这是% 7的作用,然后是if (result < now),它会仔细检查今天是否已经过了所需的时间,如果是这样的话会增加一周。

答案 2 :(得分:0)

您可以通过简单的重新计算轻松获得下一个星期四。

7 - 一周中的天数 4 - 一周的星期四指数 计算 - 你需要减去每周当天的索引以获得星期四

&#13;
&#13;
var day = new Date();

var days = 7 - day.getDay() + 4;

var nextDay = new Date(day.setDate(day.getDate() + days)); 


console.log(nextDay.toString());
&#13;
&#13;
&#13;

codepen检查其他日期https://codepen.io/kejt/pen/LyRGBX?editors=1111