Как использовать javascript для изменения логического значения на основе даты - PullRequest
0 голосов
/ 21 января 2020

Я написал код, который фильтрует набор данных (набор данных # 1), чтобы ежедневно отображать изображение и информацию из коллекции данных на моем веб-сайте Wix. На сайте отображается «изображение дня», поэтому сайт автоматически обновляется в полночь. На той же странице у меня есть #dataset 2, который показывает «предыдущие изображения дня», то есть изображения, которые были показаны выше до сегодняшней даты. Как я могу изменить свой код, чтобы изменить поле 'current' на сегодняшнем изображении на false, когда сегодня наступит конец.

То есть: 1) изображение A отображается из набора данных1 как изображение дня 2) изображение B отображается на следующий день 3) значение изображения A для поля 'current' меняет его на ложное, поэтому оно будет автоматически отображается в моей другой галерее на основе фильтра, который у меня есть

import wixData from 'wix-data';
//calculateDate;

//This section works perfectly

$w.onReady(function () {
$w("#dataset1").onReady(() => {
    let localDate = new Date();
    let yearValue = localDate.getFullYear();
    let monthValue = localDate.getMonth();
    let dayValue = localDate.getDate();
    let dateValue1 = new Date(yearValue, monthValue, dayValue, 0, 0, 0);
    let dateValue2 = new Date(yearValue, monthValue, dayValue, 23, 59, 59);
    $w("#dataset1").setFilter(wixData.filter()
        .between('date', dateValue1, dateValue2)
    );
//END OF SECTION THAT WORKS PERFECTLY


        wixData.query('#dataset2')
    .lt('date', dateValue1)
    .or(
        wixData.query('#dataset2')
        .gt('date', dateValue2)
    )
    .find()
    .then(results => {
        console.log(results);
        let updateArray = [];
        // Loop through results of those that are true
        // and out-of-date, change the value to false
        // and then add the item to the updateArray.
        for (var i = 0; i < results.items.length; i++) {
            let thisItem = results.items[i];
            if (thisItem.current) {
                thisItem.current = false; 
                updateArray.push(thisItem);
            }

        }
        // Now, update the collection records with this array of  
        wixData.bulkUpdate('#dataset2', updateArray)
            .then((bulkresults) => {
                // this will return an array showing the IDs of the
                // updated records.
                console.log(bulkresults);
            })
            .catch((err) => {
                console.log(err);
            });
    });
});
});
...