使用 jQuery 将值动态插入到注释字符串中



如果今天的day有一个已过期的endTime,如何将明天的day startTimeendTime插入setupOrderingNotAvailable函数的内容消息中? 现在,消息setupOrderingNotAvailable说"...明天从上午 11:00 到晚上 9:00",但并非每天都如此;这就是我想插入明天时代的地方。

法典

var days = {
    '1': {startTime: '4:00 PM', endTime: '8:00 PM'},
    '2': {startTime: '11:00 AM', endTime: '9:00 PM'},
    '3': {startTime: '11:00 AM', endTime: '9:00 PM'},
    '4': {startTime: '11:00 AM', endTime: '4:00 PM'},
    '5': {startTime: '11:00 AM', endTime: '10:00 PM'},
    '6': {startTime: '12:00 PM', endTime: '10:00 PM'},
    '7': {startTime: '12:00 PM', endTime: '8:00 PM'},
};
var curr_day = new Date().getDay();
var curr_time = getval();
var orderIsAvailable = false;
var day = days[curr_day];
// 
function setupOrderingAvailable() {
    document.querySelector('#alert-success').onclick = function() {
        $.sweetModal({
            content: '<h2>Online Ordering is Available!</h2>' +
                'Please click the button below to begin your online order.' +
                '<div class="sweet-modal-buttons"><a href="http://pizzospizzeria.hungerrush.com" target="_blank" class="button greenB">Start Order</a></div>',
            // icon: $.sweetModal.ICON_SUCCESS
        });
    };
}
// Need to make this a function that inserts tomorrows startTime and endTime into message if todays endTime has passed
function setupOrderingNotAvailable() {
    document.querySelector('#alert-success').onclick = function() {
        $.sweetModal({
            content: '<h2>Online Ordering is Not Available</h2>' +
                'Online ordering will be available again tomorrow from 11:00am to 9:00pm',
            buttons: [{
                label: 'Close',
                classes: 'redB'
            }]
        });
    };
}
if (day) {
    if (get24Hr(curr_time) > get24Hr(day.startTime) && get24Hr(curr_time) < get24Hr(day.endTime)) {
        orderingIsAvailable = true;
    } else {
        document.querySelector('#alert-success').onclick = function() {
            $.sweetModal({
                content: '<h2>Online Ordering is Not Available</h2>' +
                    'Online ordering will be available again tomorrow from 11:00am to 9:00pm',
                buttons: [{
                    label: 'Close',
                    classes: 'redB'
                }]
            });
        }
    }
}
if (orderingIsAvailable) {
    setupOrderingAvailable();
} else {
    setupOrderingNotAvailable();
}

我通过确定开始和结束时间的时间(以毫秒为单位(稍微清理了时间比较代码。这允许更清晰地(IMO(将现在的时间作为数字与开始和结束时间进行比较。从 Date 对象返回的 day 整数范围为 0-6,所以我也更新了它。

从那里你做比较,如果现在不能订购

这是一个小提琴,尽管去除了sweetModal方面,但无论您如何显示它,字符串的创建都是一样的。

https://jsfiddle.net/wx97g6x1/2/

var days = {
  0: {
    startTime: '4:00 PM',
    endTime: '8:00 PM'
  },
  1: {
    startTime: '11:00 AM',
    endTime: '9:00 PM'
  },
  2: {
    startTime: '11:00 AM',
    endTime: '9:00 PM'
  },
  3: {
    startTime: '11:00 AM',
    endTime: '4:00 PM'
  },
  4: {
    startTime: '11:00 AM',
    endTime: '10:00 PM'
  },
  5: {
    startTime: '12:00 PM',
    endTime: '10:00 PM'
  },
  6: {
    startTime: '12:00 PM',
    endTime: '8:00 PM'
  }
};
var now = new Date();
var time = now.getTime();
var day = days[now.getDay()];
var startToday = Date.parse(now.toDateString() + ' ' + day.startTime);
var endToday = Date.parse(now.toDateString() + ' ' + day.endTime);
function setupOrderingAvailable() {
  console.log('Online Ordering is Available!');
}
function setupOrderingNotAvailable() {
  var tomorrow = days[now.getDay() + 1];
  console.log('Online ordering will be available again tomorrow from '+ tomorrow.startTime +' to '+ tomorrow.endTime)
}
if (time > startToday && time < endToday) {
  setupOrderingAvailable();
} else {
  setupOrderingNotAvailable();
}
<</div> div class="one_answers">

查看模板文字

const days = {
    '1': { start: 1, end: 2 },
    '2': { start: 3, end: 4 }
}
const string = `day 2 starts at: ${days['2'].start} and ends at: ${days['2'].end}`
console.log(string); // "day 2 starts at: 3 and ends at: 4"

除了使用每天的"值"比前一天大 1 的事实。

最新更新