Как проверить, открыт ли магазин или нет, в зависимости от часового пояса и времени работы пользователя - PullRequest
0 голосов
/ 22 января 2019

Как проверить, открыт ли магазин или закрыт на основе opening time, closing time и timezone.В настоящее время у меня есть код, который используется на стороне сервера, чтобы проверить, открыто ли хранилище или закрыто, но я безуспешно пытаюсь сделать ту же функцию в javascript или jQuery.

function OperationHours($open, $close, $timezone = "GMT"){
    $status = 'closed';
    $nowTime = new DateTime("NOW", new DateTimeZone($timezone));    
    $openTime = DateTime::createFromFormat('h:iA', $open, new DateTimeZone($timezone));
    $closeTime = DateTime::createFromFormat('h:iA', $close, new DateTimeZone($timezone));

    // check if the close time is before the opening time       
    if($closeTime <= $openTime){
        $closeTime->add(new DateInterval("P1D"));
    }

    if ($nowTime > $openTime && $nowTime < $closeTime){
        $status = 'open';
    }
    return $status;
}
echo OperationHours("7:00AM", "10:30PM", "Asia/Kuala_Lumpur");

1 Ответ

0 голосов
/ 22 января 2019

Я бы порекомендовал использовать для этого момент-час .

Вы должны быть в состоянии сделать что-то вроде этого:

const isOpen = (openTime, closeTime, timezone) => {
  const now = moment().tz(timezone);
  const storeOpenTime = moment.tz(openTime, "h:mmA", timezone);
  const storeCloseTime = moment.tz(closeTime, "h:mmA", timezone);

  return now.isBetween(storeOpenTime, storeCloseTime);
}

console.log(isOpen("7:00AM", "10:30PM", "Asia/Kuala_Lumpur"))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...