2012-01-06 4 views
0

날짜가 MM/DD/YYYY 형식입니다. 그때 그것을 자바 스크립트를 사용하여 변환해야합니다. (보다 정확한 예 : 05/25/2012 -> "2012 년 5 월 25 일") 날짜를 변환하는 방법을 알고 있지만 질문은 다음과 같습니다.숫자 날짜를 텍스트로 변환 할 때의 효율성

자바 스크립트 함수 사용 여부에 관계없이 더 효율적인 방법이 있습니까? 또는 다른 것을 사용하여 MM/DD/YYYY를 switch 문을 사용하는 대신 위의 형식으로 변환하고 문자열을 연결 하시겠습니까?

+0

date.js 라이브러리 (매우 유연함). 더 쉽지만 속도면에서 효율성이 떨어집니다. –

답변

0

를 배열에 액세스하여이

var monthArray = ['January', 'February', ... , 'December']; 


var date = "05/25/2012"; 

var dateParts = date.split('/'); 

var convertedDate = monthArray[parseInt(dateParts[0], 10)] + " " + dateParts[1] + ", " + dateParts[2]; 
+0

switch 문보다 효율적입니다. 내가 라이브러리 함수를 찾지 못하면 이것을 사용할 것이다. – Proxy404

+0

단지 하나의 편집 : var convertedDate = monthArray [parseInt (dateParts [0], 10) -1] + ... '-1'이 없으면 그 다음 달이됩니다. 그렇지 않으면이 작동합니다. – Proxy404

0

이상하게도 나는 약 30 분 전에 related question을 게시했습니다. 여기에 제가 사용하고있는 것이 있지만 시간도 분석합니다.

// Date m/d/Y Time h:m a 
function parseDate(date,time) { 

date = date.split("/"); 
time = time.split(" "); 
hm = time[0].split(':'); 
if (parseInt(hm[0],10) == 12) { 
    hm[0] = 0; 
} 
if (time[1] == 'pm') { 
    hm[0] = parseInt(hm[0],10) + 12; 
} else { 
    hm[0] = parseInt(hm[0],10); 
} 
return new Date(
    parseInt(date[2],10), 
    parseInt(date[0],10)-1, 
    parseInt(date[1],10), 
    hm[0], 
    parseInt(hm[1],10) 
); 

} 

그래서 당신은 쉽게 time 줄을 제거하고 다음이 ...

function parseDate(date) { 

    date = date.split("/"); 

    return new Date(
    parseInt(date[2],10), 
    parseInt(date[0],10)-1, 
    parseInt(date[1],10) 
); 

} 
+0

* 항상 '0'으로 시작하는 모든 문자열이 '0x'로 시작하지 않는 한 8 진수로 해석되므로 'parseInt (string [, radix])'함수를 사용할 때 항상'radix' 매개 변수를 추가하십시오. 16 진수로 해석 될 수 있음). Ref : https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/parseInt – matsev

+0

이미 좋은 코드입니다. 하지만 "2012 년 3 월 20 일"과 같은 문자열로 실제 날짜를 알려주고 있습니다. 그 달의 번호에 대해 switch 문을 실행하는 대신 하나가 있으면 내장 함수를 사용하고 싶습니다. – Proxy404

+0

@matsev 앞으로도 분명히 할 것입니다. 나는 제출하고 곧바로 편집했다. 나는 실제로 이것 [오늘] (http://stackoverflow.com/questions/8763396/javascript-parseint-with-leading-zeros)에 대해 알게되었습니다. –

1

을 할 수있는 당신은 parseDate을 찾을 수 및 수 formatDateDatepicker의 기능이 jQuery UI이고 매력적입니다.

  • 코드 밀도 :

    var date = $.datepicker.parseDate('mm/dd/yy', '05/25/2012'); 
    $.datepicker.formatDate('MM d yy', date); 
    

    그것은 모두 당신이 '효율적으로'정의하는 방법에 따라 달라집니다? - 효율적인 임무 야.

  • 속도와 성능? - 실마리 없음.
  • 현지화? - supported입니다. $(selector).datepicker($.datepicker.regional['fr']); *