2009-10-30 9 views
1

I 자바 스크립트 날짜 및 JSON 날짜 시간

그것이 가능 ... 내가 전달하고 매개 변수 중 하나가 자바 스크립트 날짜하지만 작업은 C#을 날짜 시간을 기대하기 때문에 JQuery와 함수해서 getJSON에 문제가, 액션 URL이 트리거되지 않습니다이 C# DateTime과 호환되도록 Javascript Date를 포맷 하시겠습니까?

답변

3

Datejs 라이브러리 (http://www.datejs.com/)를 사용하는 것이 좋습니다. 그것이 가진 나의 한정된 경험에서 그것은 환상적이다.

2

사용 Mozilla Date documentation에서 찍은 기능 :

/* use a function for the exact format desired... */ 
function ISODateString(d){ 
function pad(n){return n<10 ? '0'+n : n} 
return d.getUTCFullYear()+'-' 
     + pad(d.getUTCMonth()+1)+'-' 
     + pad(d.getUTCDate())+'T' 
     + pad(d.getUTCHours())+':' 
     + pad(d.getUTCMinutes())+':' 
     + pad(d.getUTCSeconds())+'Z' 
} 

.NET은 ISO 형식의 날짜를 처리 아무런 문제가 없을 것입니다. DateTime.Parse(...)을 사용하여 ISO 형식 문자열을 처리 할 수 ​​있습니다. 당신은 JSON 표현에서 자바 스크립트 날짜 얻을 수있는 솔루션을 시도하는 경우

2

(/ 일 (1350035703817)을 /) 당신은 this function를 사용할 수 있습니다

function parseJsonDate(jsonDate) { 
    var offset = new Date().getTimezoneOffset() * 60000; 
    var parts = /\/Date\((-?\d+)([+-]\d{2})?(\d{2})?.*/.exec(jsonDate); 

    if (parts[2] == undefined) 
     parts[2] = 0; 

    if (parts[3] == undefined) 
     parts[3] = 0; 

    return new Date(+parts[1] + offset + parts[2]*3600000 + parts[3]*60000); 
}; 

는 마법처럼 나를 위해 일했다.

1

나는이 기능을 위의 것보다 짧게 사용했습니다.

function ToJsonDate(date) { 
    return '\/Date(' + date.getTime() + ')\/'; 
} 
+2

이 가끔 JSON 날짜에 추가되는 시간대에 대한 정보를 상관하지 않습니다

function ParseJsonDate(dateString) { var milli = dateString.replace(/\/Date\((-?\d+)\)\//, '$1'); var date = new Date(parseInt(milli)); return date; } 

또한 그들을 다시 변환하는 방법을 발견했다. – crush