2010-12-03 8 views
1

내가 사용하는 확장 메서드를 만든 내장 된 ASP.NET 시리얼과 같이 AJAX를 통해 내 서버로 다시 보내 JSON으로 내 개체를 직렬화이 잘 작동이상한 날짜 형식 도움말

namespace ExtensionMethods.Json 
{ 
public static class JsonHelper 
{ 
    public static string ToJson(this object obj) 
    { 
     JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     return serializer.Serialize(obj); 
    } 

    public static string ToJson(this object obj, int recursionDepth) 
    { 
     JavaScriptSerializer serializer = new JavaScriptSerializer(); 
     serializer.RecursionLimit = recursionDepth; 
     return serializer.Serialize(obj); 
    } 
} 
} 

//usage 
String json = myObject.ToJson(); 

,

/Date(1291276800000)/ 

날짜가 더 관리 뭔가에 와서 있도록이 서버 쪽 문제를 해결하는 방법이 있나요, 또는 클라이언트에 구문 분석 바보 같은 문자를해야 할 것 : 날짜를 제외하고는이 형식으로 날짜를 다시 전송로 측면 (즉, 괄호에서 숫자를 긁어 낸 다음 해당 뉘앙스를 사용하여 날짜를 설정하십시오 mber 밀리 초)? 또는 단순히 내가 바라 보는 더 좋은 방법이 있습니까? Date.parse([the date])을 시도했지만 "잘못된 날짜 형식"으로 오류가 발생합니다.

+1

... 나는이 문제가 왜 혼란 스러워요? –

+0

@ liho1eye - 이것이 표준 형식인지는 모르지만 그것을 고치는 방법을 알아 냈습니다. – Jason

+0

정말요? 모든 사람들에게 도움을 청한 후에 문제를 해결할 수있는 방법을 찾아 냈습니다. 이제는 같은 문제를 가진 다른 사람들을 돕기 위해 해결 방법을 게시하지 않겠습니까? –

답변

3

. 그 날짜를 되 찾는 데 도움이되는 다른 질문을보십시오. How do I format a Microsoft JSON date?

+0

이것은 결국 제가 찾던 것을 이끌었습니다. 감사합니다! – Jason

+1

참고로, 그 링크 된 질문에서 가장 높은 투표 응답은 받아 들여지는 대답이 아닌 최선의 방법입니다. – Jason

0

이 문제도 있었고 모든 날짜 개체를 유닉스 타임 스탬프로 옮기고 다시 파싱하기로 결정했습니다. 추가 작업이지만 재미있는 서식을 유지합니다. long 데이터 유형의 클래스 변수를 갖고 있다면 타임 스탬프를 꽤 잘 유지해야합니다.

여기에 꽤 견고한 샘플이 있습니다. 유효한 JSON 날짜입니다

http://www.epochconverter.com/

1

나는 JavaScript Date Format 날짜 형식의 날짜 형식 확장을 사용했습니다. JSON 형식의 날짜와 잘 작동합니다. 이것에 대한 답변을

// Some common format strings 
dateFormat.masks = { 
    "default":  "ddd mmm dd yyyy HH:MM:ss", 
    shortDate:  "m/d/yy", 
    mediumDate:  "mmm d, yyyy", 
    longDate:  "mmmm d, yyyy", 
    fullDate:  "dddd, mmmm d, yyyy", 
    shortTime:  "h:MM TT", 
    mediumTime:  "h:MM:ss TT", 
    longTime:  "h:MM:ss TT Z", 
    isoDate:  "yyyy-mm-dd", 
    isoTime:  "HH:MM:ss", 
    isoDateTime: "yyyy-mm-dd'T'HH:MM:ss", 
    isoUtcDateTime: "UTC:yyyy-mm-dd'T'HH:MM:ss'Z'" 
}; 
+0

투표가 유용하기 때문에 투표했지만 외부 라이브러리 사용을 피하려고했습니다. – Jason

0

이 : 같은 심지어 일부 미리 정의 된 날짜 형식 마스크가 있습니다

function formatJsonDate(jsonDate, formatString) { 
    var dt = new Date(+jsonDate.replace(/\/Date\((\d+)\)\//, '$1')); 
    return dt.format(formatString); 
} 

var formattedDate = formatJsonDate(jsonDate, "mm/dd/yyyy"); 

:

는 내가의 .js 파일을 포함하고 내 날짜는 다음과 같은 형식의 취득 내가 사용하는 것을 기본적으로 :

나에게 유효한 JSON 날짜처럼 보인다
function parseJsonDate (date, shortFormat) { 
    if (date != null) { 
     var d = new Date(parseInt(date.substr(6))); 
      if (shortFormat) { 
       return (d.getMonth() + 1) + '/' + d.getDate() + '/' + 
          d.getFullYear().toString().substr(2); 
      } 
      return d; 
    } else { 
      return null; 
    } 
}