Как настроить отображение элемента в Wix только в течение определенного периода времени с помощью JavaScript?

На моем сайте Wix есть кнопка чата. Я хочу, чтобы окно чата появлялось только в те дни и часы, когда я записал в набор данных. Например, Это изображение примера набора данных. Что я пытаюсь сделать с набором данных, так это то, что окно чата будет появляться каждую субботу с 19:00. до 21:00 Как с помощью Javascript Date API настроить отображение окна чата только в это время.

Мой текущий код:

var day;
wixData.get("ScheduleTable", "day").then((results) => {
	 day = results;
})
.catch((err) => {
	let errorMSg= err;
})
	//StartTime
	var startTime;
	wixData.get("ScheduleTable", "startTime").then((results) => {
	 startTime = results;
})
.catch((err) => {
	let errorMSg= err;
})
//endTime
var endTime;
	wixData.get("ScheduleTable", "endTime").then((results) => {
	endTime = results;
})
.catch((err) => {
	let errorMSg= err;
})


$w.onReady(function () {
	//TODO: write your page related code here...
	
	var startD = new Date(Date.UTC(2019,10,day,startTime)); 
var endD = new Date(Date.UTC(2019,10,day,endTime));
var today = new Date();


if(today >= startD || today <= endD) {
  $w('#wixChat1').show();
} else {
   $w('#wixChat1').hide();
}
});


person silencerism    schedule 07.11.2019    source источник


Ответы (1)


Зачем нужно создавать базу только для 1 поля? Просто запрограммируйте время на странице.

Скрыть приложение Wix Chat по умолчанию с помощью панели свойств.

$w.onReady(function () {
    var date = new Date();
    var day = date.getDay(); //Saturday is 6
    var time = date.getHours(); //7 pm is 19 & 9 pm is 21
    console.log({day,time}); //console to check day and current hour
    if(day === 6 && time >= 19 && time <= 21) {
        $w("#wixChat1").show();
    }
});

Если вы непреклонны в запросе базы данных, выполните запрос, как показано ниже.

//---------------------Query

import wixData from 'wix-data';

$w.onReady(function () {
    getData();
});

function getData() {
    wixData.query('ScheduleTable') //database id
    .find()
    .then( (results) => {
        let Item = results.items[0]; //this returns the first item found in the database
        let start = Item.startTime; //this HAS to be a number and in 24 hr format
        let end = Item.endTime; //same as above
        decide(start, end);
    });
}

function decide(start, end) {
    var date = new Date();
    var day = date.getDay();
    var time = date.getHours();
    if(day === 6 && time >= start && time <= end) {
        $w("#wixChat1").show();
    }
}
person Shan    schedule 09.11.2019