2012-06-01 6 views
1

날짜가있는 문자열이 있는데 변환 할 수 없습니다. 이 3 월 09-201009-03-10로 변환 있도록서식 날짜 (자바 스크립트의 문자열)

var startDate = "March-09-2010"; 
var convertedStartDate = new Date(startDate); 
var month = convertedStartDate.getMonth() + 1 
var day = convertedStartDate.getDay(); 
var year = convertedStartDate.getFullYear(); 
var shortStartDate = month + "-" + day + "-" + year; 
alert(shortStartDate); 

내가 원하는 (DD-MM-YY)

누구나 내가 뭘 잘못 알아?

답변

1

이 시도 :

var dt=Date.parse(Yourstring); 

formatDate('DD-MM-YY',dt); 

Date.parse

+0

개체 함수 날짜() {[native code]}에 'Parse'메서드가 없습니다 ... 오류가 있습니다. –

+0

@RajatSinghal 죄송합니다. 답변을 편집했습니다. – Vinod

+0

1. * 객체 1268089200000에는 'tostring'* 메소드가 없습니다. 2. 수정 후 : * toString() 기수 인수는 2와 36 * 사이 여야합니다. – KooiInc

0

날짜 문자열이 올바른 형식이 아닌 확인하시기 바랍니다. 정확한 포맷, --- 다음에 따라 수정, https://developer.mozilla.org/en/JavaScript/Reference/Global_Objects/Date

이 나 jsfiddle

var startDate = "March-09-2010"; 
var tmp = startDate.split('-'); 
tmp.splice(1, 0, ','); 
var convertedStartDate = new Date(tmp.join(' ')); 
var month = convertedStartDate.getMonth() + 1 
var day = convertedStartDate.getDate(); 
var year = convertedStartDate.getFullYear(); 
var shortStartDate = ('0' + day).slice(-2) + "-" + ('0' + month).slice(-2) + "-" + year; 
alert(shortStartDate); 
0

이 구문은 코드를 조금 변경 확인하려고

var startDate = "March/09/2010"; 
var convertedStartDate = new Date(startDate); 
var month = convertedStartDate.getMonth() + 1 
var day = convertedStartDate.getDate(); 
var year = convertedStartDate.getFullYear(); 
var shortStartDate = day+ "-" + month+ "-" + year; 
alert(shortStartDate); 
+0

문제는 시작일에 – swapnesh

1
var startDate = "March-09-2010"; 
var convertedStartDate = new Date(startDate.replace(/-/g, "/")); // replace hyphen with slash 
var month = convertedStartDate.getMonth() + 1 
var date = convertedStartDate.getDate(); 
var year = convertedStartDate.getFullYear(); 
var shortStartDate = date + "-" + month + "-" + year; 
alert(shortStartDate); 

데모 다음은 내장에, Date.parse() 구현 - 때문에 http://jsfiddle.net/BjnBW/

+0

기준과 일치하지 않아 작동하지 않습니다. "March/09/2010"은 여전히 ​​유효한 날짜 문자열이 아닙니다. "March, 9 2010"은 유효한 날짜 문자열입니다. –

+0

수정되었습니다. 지금 확인하시기 바랍니다. – Diode

+0

영어 월 이름에만 적용됩니다. – KooiInc

0
var shortStartDate = 
    Globalize.format(Globalize.parseDate(startDate, 'MMMM-dd-yyyy'), 'dd-MM-yy'); 

이 변환을 수행하는 몇 가지 라이브러리를 사용하여 매달린. 그것은 시스템 로케일에서 받아 들일 수있는 형식에 따라 다릅니다.

위의 코드는 Globalize.js를 사용합니다.이 언어는 달 이름이 다른 언어로 된 형식 (기본값은 영어 임)을 포함하여 많은 날짜 형식을 처리 할 수 ​​있습니다.

0

'3 월'을 숫자로 변환해야합니다.

var months = ('January,February,March,April,May,June,July,'+ 
      'August,September,October,November,December').split(',') 
       .enum(); 

지금 당신은 당신의 날짜를 재 작성, 지금

Array.prototype.enum = function(){ 
    var obj = {}; 
    for (var i=0; i<this.length; (i+=1)) { 
     obj[this[i]] = i; 
    } 
    this.enum = obj; 
    return this; 
}; 

개월 이름을 가진 배열을 만들 : 한 가지 방법은 한 달에 이름에서 한 달에 번호를 검색 할 수 있도록이 Array 확장자를 사용하는 것입니다

var startDate = "March-09-2010".split(/\-/), 
    month  = months.enum[startDate[0]]+1; 
startDate  = [startDate[1], 
       month < 10 ? '0'+month : month, 
       startDate[2]].join('-'); 
//=> startDate now is: '09-03-2010'