시간 중복 문제 자바 스크립트

스택 오버플로 사용자

내 프로젝트에서 작업 모듈 추가에서 작업 중입니다. 작업을 추가 할 때마다 기존 작업이 겹치는 지 확인하고 싶습니다. 나는 거의했지만, 사용자가 다음과 같은 시간 아래에 작업을 추가하는 경우 작업 추가를 허용하지 않는 시간 겹침 조건에서 한 가지 문제가 발생합니다.

오전 09:00-오전 10:00

오전 10:30-오전 11:00

오전 10 시부 터 오전 10시 30 분 사이에 작업을 추가하면 아래 조건에서 허용되지 않습니다.

function disabletime(start_time, end_time) {
    var start_date = new Date(new Date(start_time).getTime());
    var end_date = new Date(new Date(end_time).getTime());

    var disable_times = new Array();
    var max_date = 0;
    var min_date = 0;

    if (tasks_array.length > 0) {
        for (var i = 0; i < tasks_array.length; i++) {

            var prev_s_date = Date.parse("1-1-2000 " + tasks_array[i].start_time);
            var prev_e_date = Date.parse("1-1-2000 " + tasks_array[i].end_time);
            var prev_start_date = new Date(new Date(prev_s_date).getTime());
            var prev_end_date = new Date(new Date(prev_e_date).getTime());
            if (i == 0) {
                min_date = prev_start_date.getTime();
                max_date = prev_end_date.getTime();
            } else {

                if (prev_end_date.getTime() > max_date) {
                    max_date = prev_end_date.getTime();
                }

                if (prev_start_date.getTime() < min_date) {
                    min_date = prev_start_date.getTime();
                }
            }
        }
        if ((start_date.getTime() == min_date) && (end_date.getTime() == max_date)) {
            alert("Check the start and end time for this task!");
            return false;
        } else if ((start_date.getTime() < min_date) && (end_date.getTime() <= min_date) || (start_date.getTime() >= max_date) && (end_date.getTime() > max_date)) {

        } else {
            alert("Check the start and end time for this task!");
            return false;

        }
    }
    start_date = new Date(start_date.getTime() + 30 * 60000);
    while (start_date < end_date) {
        disable_times.push([start_date.getHours(), start_date.getMinutes()]);
        start_date = new Date(start_date.getTime() + 30 * 60000);
    }

    return true;
}

여기 내 코드 흐름이 있습니다. 모든 작업을 자바 스크립트의 json 배열에 추가합니다. 새 작업을 추가 할 때마다 json 배열 객체 (작업이있는 경우 내부)에서 기존 작업을 확인합니다.

여기 바이올린이 있습니다

스택 오버플로 사용자

마침내 나는 아래 코드에서 친구들로부터 해결책을 얻었습니다.

function disabletime(start_time, end_time) {
    var start_date = start_time;
    var end_date = end_time;

    var disable_times = new Array();
    var max_date = 0;
    var min_date = 0;

    var startTimeOverlapIndex = -1;
    var endTimeOverlapIndex = -1;
    var sameDateIndex = -1;

    if (tasks_array.length > 0) {
        for (var i = 0; i < tasks_array.length; i++) {
            var prev_s_date = new Date("January 1, 1111 " + tasks_array[i].start_time);
            var prev_e_date = new Date("January 1, 1111 " + tasks_array[i].end_time);

            if(end_date<=prev_e_date) {
                if(end_date>prev_s_date) {
                    endTimeOverlapIndex = i+1;
                    break;
                }
            }

            if(start_date<prev_e_date) {
                if(start_date>=prev_s_date) {
                    startTimeOverlapIndex = i+1;
                    break;
                } else {
                    if(end_date>prev_s_date) {
                        endTimeOverlapIndex = i+1;
                        break;
                    }
                }
            }

            if(start_date.toString()===prev_s_date.toString() && end_date.toString()===prev_e_date.toString()) {
                sameDateIndex = i+1;
                break;
            }
        }

        if(sameDateIndex>0) {
            alert("Sorry! your time cannot be same as task ("+startTimeOverlapIndex+"), please check again!");
            return false;
        } else if(startTimeOverlapIndex>0) {
            alert("Sorry! your START time is overlaping with task ("+startTimeOverlapIndex+"), please check again!");
            return false;
        } else if(endTimeOverlapIndex>0) {
            alert("Sorry! your END time is overlaping with task ("+endTimeOverlapIndex+"), please check again!");
            return false;
        } else {
            //do whatever you do
            return true;
        }
    }
    return true;
}

바이올린의 라이브 링크는 여기에서 찾으십시오.

http://jsfiddle.net/mur7H/

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

분류에서Dev

자바 스크립트 날짜 시간 문제

분류에서Dev

자바 스크립트의 애니메이션 일시 중지 문제

분류에서Dev

자바 스크립트로 클립 보드로 복사 문제

분류에서Dev

자바 스크립트 HTML 다중 시간대 시계

분류에서Dev

자바 스크립트를 통해 중복 요소를 제거

분류에서Dev

자바 스크립트에서 배열 중복 제거

분류에서Dev

연결된 목록 자바 스크립트의 중복 제거

분류에서Dev

자바 스크립트 기능 복제

분류에서Dev

자바 스크립트의 HTML 복제

분류에서Dev

자바 스크립트 복잡한 if 문

분류에서Dev

중복 된 "중첩 된"배열 자바 스크립트 결합 (주간 개점 및 폐점 시간에 사용)

분류에서Dev

링크 생성시 자바 스크립트 문제

분류에서Dev

자바 스크립트 시간 제한 리디렉션

분류에서Dev

자바 스크립트 시간 제한 기능 통합

분류에서Dev

압축 된 시간 자바 스크립트 병합 및 제공

분류에서Dev

날짜 및 시간 구문 분석-자바 스크립트

분류에서Dev

자바 스크립트 중첩 배열 문제

분류에서Dev

문자열이 추가 된 자바 스크립트 복제 텍스트 필드

분류에서Dev

배열 자바 스크립트의 내용 표시 문제

분류에서Dev

자바 스크립트로 문서 제목을 다시 변경

분류에서Dev

자바 스크립트 축소시 G-WAN 문제

분류에서Dev

자바 스크립트의 시차 문제

분류에서Dev

자바 스크립트 카운트 다운 특정 날짜 / 시간 및 반복

분류에서Dev

자바 스크립트는 객체 배열에서 중복 제거

분류에서Dev

자바 스크립트에서 정규식으로 중복 줄 제거

분류에서Dev

중복 된 항목 자바 스크립트 배열 모두 제거

분류에서Dev

자바 스크립트 연관 배열 (해시)에서 중복 값 찾기

분류에서Dev

이것은 간단한 자바 스크립트 구문 문제입니다.

분류에서Dev

if 문 sourc 문제 자바 스크립트

Related 관련 기사

  1. 1

    자바 스크립트 날짜 시간 문제

  2. 2

    자바 스크립트의 애니메이션 일시 중지 문제

  3. 3

    자바 스크립트로 클립 보드로 복사 문제

  4. 4

    자바 스크립트 HTML 다중 시간대 시계

  5. 5

    자바 스크립트를 통해 중복 요소를 제거

  6. 6

    자바 스크립트에서 배열 중복 제거

  7. 7

    연결된 목록 자바 스크립트의 중복 제거

  8. 8

    자바 스크립트 기능 복제

  9. 9

    자바 스크립트의 HTML 복제

  10. 10

    자바 스크립트 복잡한 if 문

  11. 11

    중복 된 "중첩 된"배열 자바 스크립트 결합 (주간 개점 및 폐점 시간에 사용)

  12. 12

    링크 생성시 자바 스크립트 문제

  13. 13

    자바 스크립트 시간 제한 리디렉션

  14. 14

    자바 스크립트 시간 제한 기능 통합

  15. 15

    압축 된 시간 자바 스크립트 병합 및 제공

  16. 16

    날짜 및 시간 구문 분석-자바 스크립트

  17. 17

    자바 스크립트 중첩 배열 문제

  18. 18

    문자열이 추가 된 자바 스크립트 복제 텍스트 필드

  19. 19

    배열 자바 스크립트의 내용 표시 문제

  20. 20

    자바 스크립트로 문서 제목을 다시 변경

  21. 21

    자바 스크립트 축소시 G-WAN 문제

  22. 22

    자바 스크립트의 시차 문제

  23. 23

    자바 스크립트 카운트 다운 특정 날짜 / 시간 및 반복

  24. 24

    자바 스크립트는 객체 배열에서 중복 제거

  25. 25

    자바 스크립트에서 정규식으로 중복 줄 제거

  26. 26

    중복 된 항목 자바 스크립트 배열 모두 제거

  27. 27

    자바 스크립트 연관 배열 (해시)에서 중복 값 찾기

  28. 28

    이것은 간단한 자바 스크립트 구문 문제입니다.

  29. 29

    if 문 sourc 문제 자바 스크립트

뜨겁다태그

보관