根据今天的日期(新的Date()),我想用JavaScript获取下一个星期四的晚上7点的日期。例如:
如果今天的日期是“ Mon Apr 24 2017 13:00:00 GMT”,我正在寻找结果:
Thu Apr 27 2017 19:00:00 GMT
Run Code Online (Sandbox Code Playgroud)
但是,如果今天的日期是“ 2017年4月27日星期四21:00 GMT”(星期四,但晚上7点以后),我在寻找结果:
Thu May 4 2017 19:00:00 GMT
Run Code Online (Sandbox Code Playgroud)
任何帮助将非常感激!
也许类似于以下内容(如果您想要更具体的时间而不仅仅是小时和分钟,则可以延长它):
// 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 7pmRun Code Online (Sandbox Code Playgroud)
两个关键位是now.getDate() + (7 + dayOfWeek - now.getDay()) % 7,它计算出从今天开始的下周四(或指定日期) (这就是它所做的% 7,然后if (result < now)仔细检查今天是否已经过了所需的时间,如果是,则增加一周。
| 归档时间: |
|
| 查看次数: |
1209 次 |
| 最近记录: |