복붙노트

[JQUERY] 사용하여 "일 / 월 / 년"또는 "DD-MM-YYYY"또는 "DD-음-YYYY"형식의 날짜 문자열을 구문 분석하는 방법 자바 스크립트 또는 jQuery를 [중복]

JQUERY

사용하여 "일 / 월 / 년"또는 "DD-MM-YYYY"또는 "DD-음-YYYY"형식의 날짜 문자열을 구문 분석하는 방법 자바 스크립트 또는 jQuery를 [중복]

해결법


  1. 1.당신은 쉽게 조작에 대한 기본 자바 스크립트 날짜 객체를 포함 http://momentjs.com/ 같은 도우미 라이브러리를 사용 할 수 있습니다

    당신은 쉽게 조작에 대한 기본 자바 스크립트 날짜 객체를 포함 http://momentjs.com/ 같은 도우미 라이브러리를 사용 할 수 있습니다

    그럼 당신은 일을 같이 할 수 있습니다 :

    var day = moment("12-25-1995", "MM-DD-YYYY");
    

    또는

    var day = moment("25/12/1995", "DD/MM/YYYY");
    

    다음 날 운영

    day.add('days', 7)
    

    및 기본 자바 스크립트 날짜를 얻을 수 있습니다

    day.toDate();
    

  2. 2.최신 정보

    최신 정보

    아래 당신이 말한 :

    즉 완전히 질문을 변경합니다. 당신은 형식을 제어 할 수없는 경우는 훨씬 더 복잡 할 수 있습니다. 당신이 날짜 형식을 지정할 수 있습니다 자바 스크립트로 구축되어 있지 않다. 실제로 거의 모든 브라우저도 아니라, 년 / 월 / 일을 지원하지만 YYYY-MM-DD : 공식적으로, 자바 스크립트를 지원하는 유일한 날짜 형식은 ISO-8601의 단순화 된 버전입니다. 하지만 그 이외의, 당신은 코드를 직접 또는 쓰기 (이 훨씬 더 의미가) 좋은 라이브러리를 사용합니다. 아마 (DateJS 있지만 몇 년 동안 유지되지 않은) moment.js 또는 DateJS 같은 라이브러리를 사용하십시오.

    원래 답 :

    형식은 항상 / 월 / 년을 dd는 경우, 다음이 간단하다 :

    var parts = str.split("/");
    var dt = new Date(parseInt(parts[2], 10),
                      parseInt(parts[1], 10) - 1,
                      parseInt(parts[0], 10));
    

    분할은 주어진 구분자에 문자열을 분할합니다. 그런 다음 우리는 숫자로 문자열을 변환에서는 parseInt를 사용하여, 우리는 그 부분에서 날짜를 구축하기 위해 새로운 날짜 생성자를 사용 세 번째 부분은 두 번째 부분 월, 첫 번째 부분 하루 해가 될 것입니다. 날짜 용도는 개월 수를 기반 제로, 그래서 우리는 개월 수에서 하나를 빼야합니다.


  3. 3.다음 Date.parse는 특정 형식을 인식하고 당신은 당신의 입력 형식이 무엇인지를 이야기 할 수있는 옵션이 없습니다. 이 경우에 그 결과가 잘못 입력되도록, 형식은 mm / dd / yyyy 것을 생각한다.

    다음 Date.parse는 특정 형식을 인식하고 당신은 당신의 입력 형식이 무엇인지를 이야기 할 수있는 옵션이 없습니다. 이 경우에 그 결과가 잘못 입력되도록, 형식은 mm / dd / yyyy 것을 생각한다.

    이 문제를 해결하려면, 당신은 (예를 들어 사항 String.split와) 입력 자신을 분석 한 후 수동으로 날짜 객체를 생성하거나,보다 완벽한 기능을 갖춘 도서관 등 datejs를 사용하는 방법 중 하나를 필요는 없다.

    수동 구문 분석의 예 :

    var input = $('#' + controlName).val();
    var parts = str.split("/");
    var d1 = new Date(Number(parts[2]), Number(parts[1]) - 1, Number(parts[0]));
    

    예 date.js를 사용하여 :

    var input = $('#' + controlName).val();
    var d1 = Date.parseExact(input, "d/M/yyyy");
    

  4. 4.이 시도:

    이 시도:

     function GetDateFormat(controlName) {
            if ($('#' + controlName).val() != "") {      
                var d1 = Date.parse($('#' + controlName).val().toString().replace(/([0-9]+)\/([0-9]+)/,'$2/$1'));
                if (d1 == null) {
                    alert('Date Invalid.');
                    $('#' + controlName).val("");
                }
                    var array = d1.toString('dd-MMM-yyyy');
                    $('#' + controlName).val(array);
            }
        }
    

    정규 표현식은 .replace 대체 (/ ([0-9] +) \ / ([0-9] +) /, $ 2 / $ 1 ')의 변경 일 / 월 위치.


  5. 5.참조이 http://blog.stevenlevithan.com/archives/date-time-format

    참조이 http://blog.stevenlevithan.com/archives/date-time-format

    당신은 날짜 모든 작업을 수행 할 수 있습니다.

    파일 : http://stevenlevithan.com/assets/misc/date.format.js

    스크립트 태그를 사용하여 HTML 코드에 이것을 추가하고 당신이 그것을로 사용할 수있는 사용 :

    var now = new Date();
    
    now.format("m/dd/yy");
    // Returns, e.g., 6/09/07
    
  6. from https://stackoverflow.com/questions/10430321/how-to-parse-a-dd-mm-yyyy-or-dd-mm-yyyy-or-dd-mmm-yyyy-formatted-date-stri by cc-by-sa and MIT license