2012-02-16 3 views
1

I가 직렬화 된 날짜 속성에 돌아 오는 다음 JSON :변환 .NET 날짜 형식

/일 (1392508800000 + 0000)/

내가 자바 스크립트를 얻을 수있는 방법 아무도 말해 줄 수 이 데이트?

답변

4
if (!Date.parseJSON) { 
    Date.parseJSON = function (date) { 
     if (!date) return ""; 
     return new Date(parseFloat(date.replace(/^\/Date\((\d+)\)\/$/, "$1"))); 
    }; 
} 

var myVar = Date.parseJSON("/Date(1392508800000+0000)/") 

편집

나는 반환 된 JSON 개체를 통해 순환주기 및 날짜를 ​​수정하는 함수를 만들었습니다. (불행하게도 그것은 jQuery를에 대한 종속성을 가지고), 그러나 여기있다 :

// Looks through the entire object and fix any date string matching /Date(....)/ 
function fixJsonDate(obj) { 
    var o; 
    if ($.type(obj) === "object") { 
     o = $.extend({}, obj); 
    } else if ($.type(obj) === "array") { 
     o = $.extend([], obj); 
    } else return obj; 


    $.each(obj, function (k, v) { 

     if ($.type(v) === "object" || $.type(v) === "array") { 
      o[k] = fixJsonDate(v); 
     } else { 
      if($.type(v) === "string" && v.match(/^\/Date\(\d+\)\/$/)) { 
       o[k] = Date.parseJSON(v); 
      } 
      // else don't touch it 
     } 
    }); 
    return o; 
} 

그리고 당신은 다음과 같이 사용 : 밖으로 JSON 문자열을 통해 모든 날짜를 대체 할

// get the JSON string 
var json = JSON.parse(jsonString); 
json = fixJsonDate(json); 
+1

를이 실제로 잘 작동/\/Date \ ((\ d +) (? : [- \ +] \ d +)? \) \ // i; – dagda1