Я создал код для отключения / включения кнопки на странице:
btna = [
{
"id":"#btn123",
"formId" : "#wpcf7-f4849-p4850-o1",
'openTime' : "June 23, 2019 14:00:00",
'closeTime' : "June 23, 2019 14:00:00",
},
{
"id":"#btn1234",
"formId" : "#wpcf7-f4940-p4850-o2",
'openTime' : "June 23, 2019 14:00:00",
'closeTime' : "June 25, 2019 14:00:00",
},
{
"id":"#btn12345",
"formId" : "#wpcf7-f4941-p4850-o3",
'openTime' : "June 23, 2019 14:00:00",
'closeTime' : "June 28, 2019 14:00:00",
}
]
$(document).ready(function(){
let openTime
let closeTime
let button
let itemForm
let now = Date.now();
btna.map(function(item){
openTime = (new Date(item.openTime)).getTime()
closeTime = (new Date(item.closeTime)).getTime()
button = $( item.id )
itemForm = $( item.formId )
if (closeTime > now && openTime < now ) {
// Button in correct time period
button.addClass("active")
// if you don't want to auto hide form in page startup just comment out this line
itemForm.hide()
button.click(function(){
$( item.formId ).toggle(250)
})
}else{
// Button is'nt in its time period
button.addClass("ex1")
itemForm.hide()
}
})
})
Моя проблема - это раздел массива, где мне нужно добавить несколько дат.Мне интересно, есть ли способ установить openTime и closeTime, а затем он автоматически добавляет 7 дней (1 неделю) к каждому из них.
Это то, что я пытался:
let openTime= new Date("June 23, 2019 14:00:00");
let closeTime= new Date("June 26, 2019 14:00:00");
btna = [
{
"id":"#btn123",
"formId" : "#wpcf7-f4849-p4850-o1",
'openTime' : openTime,
'closeTime' : closeTime,
},
{
"id":"#btn1234",
"formId" : "#wpcf7-f4940-p4850-o2",
'openTime' : openTime.setDate(openTime.getDate() + 7),
'closeTime' : closeTime.setDate(openTime.getDate() + 7),
},
{
"id":"#btn12345",
"formId" : "#wpcf7-f4941-p4850-o3",
'openTime' : openTime.setDate(openTime.getDate() + 7),
'closeTime' : closTime.setDate(openTime.getDate() + 7),
}
]
$(document).ready(function(){
let button
let itemForm
let now = Date.now();
btna.map(function(item){
openTime = (new Date(item.openTime)).getTime()
closeTime = (new Date(item.closeTime)).getTime()
button = $( item.id )
itemForm = $( item.formId )
if (openTime < now && closeTime > now) {
// Button in correct time period
button.addClass("active")
// if you don't want to auto hide form in page startup just comment out this line
itemForm.hide()
button.click(function(){
$( item.formId ).toggle(250)
})
}else{
// Button is'nt in its time period
button.addClass("hide")
itemForm.hide()
}
})
})
Однако, это не совсем то, что я ищу.Я уверен, что есть другой более короткий способ вставить openTime и closeTime в цикл, что-то вроде этого: пусть openTime + = 7 let closeTime + = 7 Но я не знаю, как отобразить эти переменные внутри массива btna!Заранее спасибо