2017-01-23 123 views
1

下面的代碼是我最終想要結束的,但我不認爲這就是momentjs的工作原理。如何檢查當前時間是否在特定工作時間之間?

let time = moment() 
let dayOfWeek = time.weekday() 
let hour = time.hour() 
let minutes = time.minutes() 

let isBusinessHours = false 

// Sunday=1, Monday=2, etc.. 
// Mon-Thu - 8:30am to 7:30pm 

if (dayOfWeek >= 2 && dayOfWeek <= 5) { 
    if ((hour >= 8 && hour <= 19) && (minutes >= 0 && minutes <= 30)) { 
    isBusinessHours = true 
    } 
} else if (dayOfWeek == 6) { // Fri - 8:30am - 5:30pm 

} else if (dayOfWeek == 7) { // Sat - 10:30am - 4:00pm 

} 

這似乎是一個解決的問題,但我似乎無法破解它。

回答

2

這裏是你如何可以MomentJS做到這一點。

let currentTime = moment() 
let opening = moment('9:30am', 'h:mma') 
let closing = moment('7:30pm', 'h:mma') 

if (currentTime.isAfter(opening) && currentTime.isBefore(closing)) { 
    console.log("It's business time!") 
} 
+1

非常明確的例子。 +1 –

+0

有一個名爲'isBetween'的函數,所以你也可以使用'currentTime.isBetween(opening,closing)'' –

0
// Sunday=1, Monday=2, etc.. 
// Mon-Thu - 8:30am to 7:30pm 

if (dayOfWeek >= 2 && dayOfWeek <= 5) { 
    if ((hour >= 8 && hour <= 19) && (minutes >= 0 && minutes <= 30)) { 
    isBusinessHours = true 
    } 

此代碼將計數上午8:00和上午8:30爲營業時間內之間的時間,因爲小時= 8,分鐘> = 0和分鐘< = 30。

一種選擇是,如果塊設置爲週一至週四,週五和週六開始和結束時間在每個和使用isBefore()和isAfter()MomentJS的方法來查看當前的時間在工作日的範圍內。

參見:Comparing two times with Moment JS 和:https://momentjs.com/docs/#/query/is-before/

相關問題