2017-12-24 26 views
-1

이것은 나의 예입니다.javascript를 사용하여 근무 시간을 어떻게 분리 할 수 ​​있습니까?

9.00 - 18.00 

내가이, 그것은

let facility[0]['working_hours'] = 9.00 - 18.00 
//SEPARATED WORKING HOURS 
      let dateArray = facility[0]['working_hours'].match(/\d+/g); 

      let time_1 = parseInt(dateArray[0]); 
      let time_2 = parseInt(dateArray[2]); 

      let start_date_time = [],end_date_time = []; 

      let j = 0; 
      for(let i = time_1; i < time_2 + 12; i++){ 
       start_date_time[j] = `${i > 12 ? i - 12 : i}.00`; 
       end_date_time[j] = `${i + 1 > 12 ? i + 1 - 12 : i + 1}.00`; 

       j++; 
      } 

아니라 내 코드 작동되는이

9.00 - 10.00 
10.00 - 11.00 
11.00 - 12.00 
12.00 - 13.00 
13.00 - 14.00 
14.00 - 15.00 
15.00 - 16.00 
16.00 - 17.00 
17.00 - 18.00 

처럼 작동 시간을 분리하고자하지만 그것은 더 안정하고, 코드를 변경하려면 moment.js 나 다른 좋은 예를 사용하십시오. 내가 그것을 이해하면

답변

0

// Initial input 
 
const hours = '9.00 - 18.00'; 
 

 
// '9.00 - 18.00' -> [ 9, 18 ] -> const start = 9, const end = 18 
 
const [start, end] = hours.split(' - ').map(parseFloat); 
 

 
// Push each hour block to allHours. 
 
const allHours = []; 
 
for (let curStart = start; curStart < end; curStart++) { 
 
    // Note: need toFixed(2) here to convert from number 9 to string '9.00' 
 
    allHours.push(`${ curStart.toFixed(2) } - ${ (curStart + 1).toFixed(2) }`); 
 
} 
 

 
console.log(allHours);

1

바로, 당신은 당신의 코드의 마지막 부분을 업데이트해야합니다

let working_hours = [[], []]; 
for(let i = time_1; i < time_2; i++){ 
    working_hours[0].push(`${i}.00`); 
    working_hours[1].push(`${i + 1}.00`); 
} 

편집 : 이제

사용 moment.js

let working_hours = '9.00 - 18.00'; 
let dateArray = working_hours.split(' - '); 

let start = moment(dateArray[0], 'H.m'); 
let end = moment(dateArray[1], 'H.m'); 

let start_date_time = [],end_date_time = []; 

let max = start.hour() + end.diff(start, 'hours'); 
for(let hour = start.hour(); hour < max; hour++){ 
    start_date_time.push(`${hour}.00`); 
    end_date_time.push(`${hour + 1}.00`); 
} 
+0

순간 js 또는 다른 좋은 예를 사용하여 모든 코드를 변경하고 싶습니다. –

+0

나는 moment.js를 살펴보고 대답을 업데이트 할 것입니다. – forsureitsme

+0

답변을 업데이트했습니다. 코드를 이해하기 쉽고, 순간적으로 사용되는 함수를 살펴봄으로써 필요한 도움을 얻을 수 있습니다. – forsureitsme