如何根据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");发布于 2019-01-22 13:50:20
为此,我建议使用moment-timezone。
您应该能够这样做:
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"))https://stackoverflow.com/questions/54301576
复制相似问题