2017-07-17 7 views
0

(JSONオブジェクトである)確認し、NodeJS

以下の可用時間は、月曜日の午前7時から午前10時まで、午後1時と午後5時の間に利用可能であると解釈することができます。 土曜日午前9時〜午前10時、午後3時〜午後5時など。

現在の時刻が空き時間内にあるかどうかを確認するには、moment.jsを使用しています。

var availabilityTimes = { 
    "Monday": { 
     "times": [ 
      { 
       "startTime":"7:00 AM", 
       "endTime":"10:00 AM" 
      }, 
      { 
       "startTime":"1:00 PM", 
       "endTime":"5:00 PM" 
      } 
     ], 
     "weekday": "Monday", 
     "available": true 
    }, 
    "Saturday": { 
     "times": [ 
      { 
       "startTime":"9:00 AM", 
       "endTime":"10:00 AM" 
      }, 
      { 
       "startTime":"3:00 PM", 
       "endTime":"5:00 PM" 
      } 
     ], 
     "weekday": "Saturday", 
     "available": true 
    }, 
    "Tuesday": { 
     "times": [ 
      { 
       "startTime":"9:00 AM", 
       "endTime":"8:00 PM" 
      } 
     ], 
     "weekday": "Tuesday", 
     "available": true 
    }, 
    "Sunday": { 
     "times": [ 
      { 
       "startTime":"9:00 AM", 
       "endTime":"8:00 PM" 
      } 
     ], 
     "weekday": "Sunday", 
     "available": true 
    }, 
    "Friday": { 
     "times": [ 
      { 
       "startTime": "9:00 am", 
       "endTime": "6:00 pm" 
      } 
     ], 
     "weekday": "Friday", 
     "available": true 
    }, 
    "Wednesday": { 
     "times": [ 
      { 
       "startTime": "9:00 am", 
       "endTime": "6:00 pm" 
      } 
     ], 
     "weekday": "Wednesday", 
     "available": true 
    }, 
    "Thursday": { 
     "times": [ 
      { 
       "startTime": "9:00 am", 
       "endTime": "6:00 pm" 
      } 
     ], 
     "weekday": "Thursday", 
     "available": true 
    } 
} 
+1

何をしようとしなかったし、どこで失敗したのか? – MySidesTheyAreGone

答えて

1

私はこれがあなたが探しているものだと信じています。

var isValid = false; 
for(let key in availabilityTimes) 
{ 
    isValid = availabilityTimes[key].weekday === moment().format('dddd');  
    if(isValid) 
    { 
     if(availabilityTimes[key].times.length == 0) 
     { 
      isValid = false; 
      continue; 
     } 

     for(let time in availabilityTimes[key].times) 
     { 
      let startTime = Date.parse("1900-01-01 " + time.startTime); 
      let endTime = Date.parse("1900-01-01 " + time.endTime); 
      let nowTime = Date.parse("1900-01-01 " + moment().format('HH:mm')); 

      isValid = nowTime >= startTime && nowTime <= endTime; 
      if(isValid) 
      { 
       break; 
      } 
     } 

     if(isValid) 
     { 
      break; 
     } 
    } 
} 
console.log(isValid); 

希望します。

よろしく、

Hatjhie

関連する問題