2012-03-20 2 views
2

XML 피드를 가져 와서 JavaScript를 사용하여 HTML에 쓰고 있습니다.자바 스크립트에서 날짜 형식으로 숫자를 yyyymmdd를 mm/dd/yyyy로 변환합니다.

날짜 필드가 있습니다

20120319

내가 뭘 원하는 같이 더 읽을 수있는 형식으로 변환 할 수 있습니다 :

03/19/2012

이 일을하는 쉬운 방법이 있나요 자바 스크립트?

+0

도움을 주신 모든 분들께 감사드립니다. 'exp.replace (/ (\ d \ d) (\ d \ d)/g,'$ 2/$ 3/$ 1 ');' – Daniel

답변

6

한 가지 방법은 쓰기이다

번째로, replace 두 자리 숫자의 시퀀스 다음 두 자리의 시퀀스 다음 네 자리들의 시퀀스를, 정규 표현식을 사용
s = s.replace(/(\d\d\d\d)(\d\d)(\d\d)/g, '$2/$3/$1'); 

, 플러스는 /이고 세 번째 플러스는 /과 첫 번째 플러스입니다.

+0

'(\ d \ d \ d \ d)'아름답 지 않아요 - 더 좋았어요'(\ d {4}) – Neysor

+1

@Neysor : OP가 regexes를 언급했다면,'\ d {4 }'하지만, 그랬듯이 정규 표현식에 익숙한 지 확실하지 않았기 때문에 가능한 한 간단한 구문을 사용하는 것이 가장 좋습니다. – ruakh

+0

나는 이해한다 :) – Neysor

7

전세계에서 모호하지 않은 "2012-03-19"와 같은 로케일에 영향을받지 않는 날짜 형식을 사용하는 것이 가장 이상적입니다. 즉 :

var dateStr = "20120319"; 
var match = dateStr.match(/(\d{4})(\d{2})(\d{2})/); 
var betterDateStr = match[2] + '/' + match[3] + '/' + match[1]; 

원하는대로 할 수 있습니다. 이 MDY를 하드 코드합니다. 대부분의 유럽에서 사용되는 DMY를 원하면 match[2]match[3]을 교환하십시오.

당신이 발견은 현재 로케일 먼저 월, 일을 선호 여부를 감지 할 경우, 다음

(new Date('01/02/1970').getDate() === 2) 

은 도움이 될 수 있습니다.

+0

+1 그냥이 코드를 사용했다. "대부분의 유럽에서 사용되는"것으로, 그러나 대부분의 세계에서. 아, 그리고 문자열을 구문 분석 할 날짜를 신뢰하지 마십시오, 당신이 그것을 기대하면 실패합니다. – RobG

관련 문제