Как использовать данные API REST с моментом isBetween для обновления времени открытия / закрытия - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь извлечь некоторые данные из REST API и использовать их с Moment для обновления времени открытия / закрытия интернет-магазина. Ниже приведен пример моих данных REST API

"id": 1,
"store_open_close": {
    "enabled": true,
    "time": {
        "sunday": {
            "status": "open",
            "opening_time": "10:00",
            "closing_time": "21:00"
        },
        "monday": {
            "status": "open",
            "opening_time": "10:00",
            "closing_time": "21:00"
        },
        "tuesday": {
            "status": "open",
            "opening_time": "10:00",
            "closing_time": "21:00"
        },
        "wednesday": {
            "status": "open",
            "opening_time": "10:00",
            "closing_time": "21:00"
        },
        "thursday": {
            "status": "open",
            "opening_time": "10:00",
            "closing_time": "21:00"
        },
        "friday": {
            "status": "open",
            "opening_time": "10:00",
            "closing_time": "23:00"
        },
        "saturday": {
            "status": "open",
            "opening_time": "11:00 am",
            "closing_time": "22:00"
        }
    },
    "open_notice": "We are open",
    "close_notice": "Sorry we are closed"
},
"id": 2...

Вот код, который я использую сейчас, который вручную устанавливает время открытия / закрытия

 isStoreOpen() {
    // Get formatted time
    const current_time = new moment()
    const format = "LT"
    const time = moment(current_time, format),
        beforeTime = moment("10:00", format),
        afterTime = moment("21:00", format);

    // Check if current time is between open and close times
    if (time.isBetween(beforeTime, afterTime)) {
        this.setState({ restaurantOpen: true })
    } else {
        this.setState({ restaurantOpen: false })
    }
},

... Мне нужно что-то вроде

if (restaruantstores.id === product.store.id) { isStoreOpen() { ... } }

Я пытаюсь использовать данные из REST API в качестве beforeTime и afterTime. Мне удалось успешно отобразить время открытия / закрытия (с некоторой помощью в прошлом месяце от Пола здесь, на StackOverflow).

item.store_open_close.time[currentDay.toLowerCase()].opening_time

, но я пытаюсь удаленно обновлять это время через REST API. Любая помощь, высоко ценится,Спасибо!

1 Ответ

0 голосов
/ 05 ноября 2019

Вы можете получить товар как

isStoreOpen() {
// ...
const weekdays = [
  '-',
  'monday',
  'tuesday',
  'wednesday',
  'thursday',
  'friday',
  'saturday',
  'sunday',
];
const currentDay = weekdays[moment().isoWeekday()];
const storeHours = store_open_close.time[currentDay];

// now you can use any properties like status, opening_time, closing_time

// here the code of your function continues
// ...

См. Документацию isoWeekdays с момента

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...