今日の日付(new Date())に応じて、次の木曜日の午後7時の日付をjavascriptで取得したいと思います。例えば:
今日の日付が「2017年4月24日月曜日13:00:00GMT」の場合、結果を探しています。
Thu Apr 27 2017 19:00:00 GMT
ただし、今日の日付が「2017年4月27日木曜日21:00:00 GMT」(木曜日、ただし午後7時過ぎ)の場合、結果を探しています。
Thu May 4 2017 19:00:00 GMT
どんな助けでも大歓迎です!
たぶん次のようなものです(時間と分だけでなく、より具体的な時間を必要とする場合は延長できます):
// 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
二つの重要なビットはnow.getDate() + (7 + dayOfWeek - now.getDay()) % 7
、次木曜日(または指定された日)出た数字から始まって、今日何が(% 7
し、その後、if (result < now)
その二重のチェックに必要な時間が経過し、今日はまだしている場合と、そうであれば週を追加します。
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加