2009-06-01 1 views

답변

4

많은 다른 날짜 형식은 단지 Date() 생성자에 전달하여 Date 객체로 변환 할 수 있습니다 :

var date = new Date(datestring); 

귀하의 예를 들어 날짜가 두 가지 이유가 작동하지 않습니다. 첫째, 1 년이 없습니다. 둘째, "pm"앞에 공백이 있어야합니다 (이유는 확실하지 않습니다).

// Wed May 27 2009 23:00:00 GMT-0700 (Pacific Daylight Time) 
var date = new Date("2009/05/27 11:00 pm") 

당신이 받고있는 날짜 형식이 일치하는 경우이 방법을 고칠 수 있습니다

var datestring = "05/27 11:00pm"; 
var date = new Date("2009/" + datestring.replace(/\B[ap]m/i, " $&")); 
+0

시간과 am/pm 표시기 사이에 공백없이 잘 파싱합니다. 귀하의 솔루션을 마찬가지로 단지 1 년 퍼팅의 시작합니다. 더 단순합니다. – Joe

+0

그 공간이 JS 엔진과 관련이 있는지 궁금해했습니다. 기록을 위해 필자의 FF3 사본은 공백없이 구문을 분석하지 않습니다 ("잘못된 날짜"). –

+0

날짜 형식을 엄격하게 제어하므로 이것이 정확히 무엇을 찾고 있었는지 – Jared

0

하지 깨끗한하지만 작동합니다

var strDate = '05/27 11:00pm'; 
var myDate = ConvertDate(strDate, '2009'); 

function ConvertDate(strWeirdDate, strYear) 
{ 
    strWeirdDate = strWeirdDate.replace(/ /, '/' + strYear + ' '); 
    return new Date(strWeirdDate); 
} 

이 아마를 다듬을 문자열도 먼저.

3

나는 Datejs 라이브러리의 구문 분석 방법을 사용하는 것입니다.

http://www.datejs.com/

나는 당신의 예를 시도하고 괜찮 았는데 ... 오후 11시

2009년 5월 27일 (수요일) 오후 11시 0분 0초

5/27

+0

이 가능성을 살펴 봤지만이 단일 기능에 대해 전체 datejs 라이브러리를 포함하고 싶지 않았습니다. – Jared

+0

Datejs는 날짜 형식 (예 : 사용자 제공, 자유 텍스트 날짜)을 거의 제어 할 수없는 경우에 유용합니다. 웹 호스트가 압축을 지원하는 경우 라이브러리가 무겁지 않습니다. 약 7Kgz 만 압축됩니다. –

0

내가 작성한 또 다른 옵션 :

DP_DateExtensions Library

날짜/시간 구문 분석 방법이 있습니다. 마스크를 전달하면 입력 내용의 유효성을 검사하고 일치하는 경우 데이터 개체를 반환합니다.

날짜/시간 형식, 날짜 계산 (날짜 추가/빼기 부분), 날짜 비교, 특수 날짜 구문 분석 등도 지원합니다. 자유로운 오픈 소스입니다.

관련 문제