복붙노트

[JQUERY] 어떻게 마이크로 소프트 JSON 날짜를 포맷합니까?

JQUERY

어떻게 마이크로 소프트 JSON 날짜를 포맷합니까?

해결법


  1. 1.평가 ()는 필요하지 않습니다. 이것은 잘 작동합니다 :

    평가 ()는 필요하지 않습니다. 이것은 잘 작동합니다 :

    var date = new Date(parseInt(jsonDate.substr(6)));
    

    SUBSTR () 함수는 / 일 꺼낸다 (부분과에서는 parseInt () 함수는 정수를 가져오고 무시) 끝에 /. 그 결과 수는 날짜 생성자에 전달됩니다.

    나는 의도적으로 기수를 (으로 parseInt에 제 2 인수) 탈락했다; 아래에있는 내 의견을 참조하십시오.

    또한, 나는 완전히 로리의 의견에 동의 : ISO-8601 기간이 이전 형식보다 선호된다 -이 형식은 일반적으로 새로운 개발에 사용해서는 안. 는 ISO-8601 형식을 사용하여 날짜를 직렬화 훌륭한 대안에 대한 우수한 Json.NET 라이브러리를 참조하십시오.

    ISO-8601 형식의 JSON 날짜를 들어, 단지 날짜 생성자에 문자열을 전달 :

    var date = new Date(jsonDate); //no ugly parsing needed; full timezone support
    

  2. 2.당신은 JSON에서 데이트를하려면이 옵션을 사용할 수 있습니다 :

    당신은 JSON에서 데이트를하려면이 옵션을 사용할 수 있습니다 :

    var date = eval(jsonDate.replace(/\/Date\((\d+)\)\//gi, "new Date($1)"));
    

    당신이 원하는대로 표시 할 (축소 된 및 gzip으로 압축 할 때 1.2 KB) 그리고 당신은 자바 스크립트 날짜 형식 스크립트를 사용할 수 있습니다.


  3. 3.Newtonsoft Json.NET을 사용하는 사람들을 위해, IE8, 파이어 폭스 3.5 플러스 Json.NET에서 네이티브 JSON을 통해 작업을 수행하는 방법에 읽어.

    Newtonsoft Json.NET을 사용하는 사람들을 위해, IE8, 파이어 폭스 3.5 플러스 Json.NET에서 네이티브 JSON을 통해 작업을 수행하는 방법에 읽어.

    또한 Json.NET에 의해 작성 날짜 형식 변경에 대한 문서는 유용하다 : Json.NET과 날짜를 직렬화

    너무 게으른 그들을 위해, 여기에 빠른 단계입니다. JSON은 느슨한 날짜 시간 구현을 가지고, 당신은)합니다 (IsoDateTimeConverter를 사용해야합니다. 아래의 코드가 필요하지 않도록 Json.NET 4.5부터 기본 날짜 형식은 ISO 것을 참고.

    string jsonText = JsonConvert.SerializeObject(p, new IsoDateTimeConverter());
    

    json으로는로를 통해 올 것이다

    "fieldName": "2009-04-12T20:44:55"
    

    마지막으로, 일부 자바 스크립트는 자바 스크립트 날짜에 ISO 날짜를 변환 :

    function isoDateReviver(value) {
      if (typeof value === 'string') {
        var a = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)(?:([\+-])(\d{2})\:(\d{2}))?Z?$/.exec(value);
          if (a) {
            var utcMilliseconds = Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6]);
            return new Date(utcMilliseconds);
          }
      }
      return value;
    }
    

    나는이처럼 사용

    $("<span />").text(isoDateReviver(item.fieldName).toLocaleString()).appendTo("#" + divName);
    

  4. 4.원래 예 :

    원래 예 :

    /Date(1224043200000)/  
    

    내장 된 JSON 직렬화를 사용하여 WCF REST를 통해 날짜를 보낼 때이 WCF에서 사용하는 서식을 반영하지 않습니다. (.NET 3.5 이상, SP1)

    나는 대답은 여기에 도움이되었다고하지만 WCF JSON에서 수 반환에 GMT 오프셋 시간대 (1970 년 이후)이 첨부되고있는 것으로 나타나는 정규식에 약간의 편집이 필요합니다.

    WCF 서비스에서는 내가 가진 :

    [OperationContract]
    [WebInvoke(
        RequestFormat = WebMessageFormat.Json,
        ResponseFormat = WebMessageFormat.Json,
        BodyStyle = WebMessageBodyStyle.WrappedRequest
        )]
    ApptVisitLinkInfo GetCurrentLinkInfo( int appointmentsId );
    

    ApptVisitLinkInfo 간단하게 정의된다 :

    public class ApptVisitLinkInfo {
        string Field1 { get; set; }
        DateTime Field2 { get; set; }
        ...
    }
    

    "필드 2"는 서비스에서 JSON으로 반환 될 때 값은 다음과 같습니다

    /Date(1224043200000-0600)/
    

    시간대는 값의 일부로 포함 오프셋을 알 수 있습니다.

    수정 된 정규식 :

    /\/Date\((.*?)\)\//gi
    

    그것은 약간 더 열심과 부모 사이에있는 모든뿐만 아니라 첫 번째 숫자를 잡고. 그 결과 시간이 1970 년 이후 플러스 오프셋 시간대는 모든 날짜 객체를 얻기 위해 평가에 공급 될 수있다.

    바꾸기위한 자바 스크립트의 결과 라인은 다음과 같습니다

    replace(/\/Date\((.*?)\)\//gi, "new Date($1)");
    

  5. 5.게시물에 대한 답변은 자바 스크립트 날짜에 수동 날짜 변환을 제공합니다. 나는 당신이 지시하는 자동 구문 분석 날짜 수, 그래서 조금 jQuery의 $ .parseJSON ()를 확장했습니다. 그것은 ISO 날짜 (json2.js 같은 및 라이브러리) 브라우저에서 네이티브 JSON 기능을 지원하는 (2010-01-01T12.34.56.789Z를) 형식으로 ASP.NET뿐만 아니라 날짜 (/ 일 (12348721342)을 /) 포맷 처리합니다.

    게시물에 대한 답변은 자바 스크립트 날짜에 수동 날짜 변환을 제공합니다. 나는 당신이 지시하는 자동 구문 분석 날짜 수, 그래서 조금 jQuery의 $ .parseJSON ()를 확장했습니다. 그것은 ISO 날짜 (json2.js 같은 및 라이브러리) 브라우저에서 네이티브 JSON 기능을 지원하는 (2010-01-01T12.34.56.789Z를) 형식으로 ASP.NET뿐만 아니라 날짜 (/ 일 (12348721342)을 /) 포맷 처리합니다.

    어쨌든. 당신이 위에 날짜 변환 코드를 반복하고 싶지 않아 또 다시 나는이 제안하는 경우에 당신은이 블로그 게시물을 읽고 좀 더 쉽게 당신의 인생을 만들 것입니다 코드를 얻을.


  6. 6.자바 스크립트에서 말한다면,

    자바 스크립트에서 말한다면,

    var thedate = new Date(1224043200000);
    alert(thedate);
    

    당신은 올바른 날짜의 것을 볼 수 있습니다, 당신은 어떤 프레임 워크와 자바 스크립트 코드에서 그 어디에서나 사용할 수 있습니다.


  7. 7.

    var = MyDate_String_Value = "/Date(1224043200000)/"
    var value = new Date
                (
                     parseInt(MyDate_String_Value.replace(/(^.*\()|([+-].*$)/g, ''))
                );
    var dat = value.getMonth() +
                             1 +
                           "/" +
               value.getDate() +
                           "/" +
           value.getFullYear();
    

  8. 8.우리는 모두 마이크로 소프트의 ASP.NET에 대처하는 내부 UI 라이브러리가 내장 된 JSON 형식처럼 / 일 (밀리 초) / 원래 여기에 대해 물었고, 대부분의 JSON.NET의, 2014-06- 등을 포함하는 JSON의 날짜 형식 22T00 : 00 : 00.0. 또한 우리는 아무것도하지만 3 소수점으로 대처을 oldIE의 무능력에 대처해야합니다.

    우리는 모두 마이크로 소프트의 ASP.NET에 대처하는 내부 UI 라이브러리가 내장 된 JSON 형식처럼 / 일 (밀리 초) / 원래 여기에 대해 물었고, 대부분의 JSON.NET의, 2014-06- 등을 포함하는 JSON의 날짜 형식 22T00 : 00 : 00.0. 또한 우리는 아무것도하지만 3 소수점으로 대처을 oldIE의 무능력에 대처해야합니다.

    우리는 먼저, 일반 자바 스크립트 Date 객체로 구문 분석, 우리가 소모있는 종류의 일의 어떤 발견이를 포맷합니다.

    1) 마이크로 소프트의 날짜 형식을 감지

    // Handling of Microsoft AJAX Dates, formatted like '/Date(01238329348239)/'
    function looksLikeMSDate(s) {
        return /^\/Date\(/.test(s);
    }
    

    2) ISO 날짜 형식을 감지

    var isoDateRegex = /^(\d\d\d\d)-(\d\d)-(\d\d)T(\d\d):(\d\d):(\d\d)(\.\d\d?\d?)?([\+-]\d\d:\d\d|Z)?$/;
    
    function looksLikeIsoDate(s) {
        return isoDateRegex.test(s);
    }
    

    3) 구문 분석 MS 날짜 형식 :

    function parseMSDate(s) {
        // Jump forward past the /Date(, parseInt handles the rest
        return new Date(parseInt(s.substr(6)));
    }
    

    4) 구문 분석 ISO 날짜 형식.

    적어도 코드가 환경에 따라 다릅니다 그래서 우리가 수정 된 표준 ISO 날짜 또는 ISO 날짜 나왔습니다 거래 항상 세 밀리 초 장소 (위 참조)이 있는지 확인 할 수있는 방법이 우리가 할.

    4A) 구문 분석 표준 ISO 날짜 형식을 oldIE의 문제에 대처 :

    function parseIsoDate(s) {
        var m = isoDateRegex.exec(s);
    
        // Is this UTC, offset, or undefined? Treat undefined as UTC.
        if (m.length == 7 ||                // Just the y-m-dTh:m:s, no ms, no tz offset - assume UTC
            (m.length > 7 && (
                !m[7] ||                    // Array came back length 9 with undefined for 7 and 8
                m[7].charAt(0) != '.' ||    // ms portion, no tz offset, or no ms portion, Z
                !m[8] ||                    // ms portion, no tz offset
                m[8] == 'Z'))) {            // ms portion and Z
            // JavaScript's weirdo date handling expects just the months to be 0-based, as in 0-11, not 1-12 - the rest are as you expect in dates.
            var d = new Date(Date.UTC(m[1], m[2]-1, m[3], m[4], m[5], m[6]));
        } else {
            // local
            var d = new Date(m[1], m[2]-1, m[3], m[4], m[5], m[6]);
        }
    
        return d;
    }
    

    고정 세 밀리 초 소수 자릿수 4B) 구문 분석 ISO 형식 - 훨씬 더 쉽게 :

    function parseIsoDate(s) {
        return new Date(s);
    }
    

    5) 형식 :

    function hasTime(d) {
        return !!(d.getUTCHours() || d.getUTCMinutes() || d.getUTCSeconds());
    }
    
    function zeroFill(n) {
        if ((n + '').length == 1)
            return '0' + n;
    
        return n;
    }
    
    function formatDate(d) {
        if (hasTime(d)) {
            var s = (d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear();
            s += ' ' + d.getHours() + ':' + zeroFill(d.getMinutes()) + ':' + zeroFill(d.getSeconds());
        } else {
            var s = (d.getMonth() + 1) + '/' + d.getDate() + '/' + d.getFullYear();
        }
    
        return s;
    }
    

    6) 타이 모두 함께 :

    function parseDate(s) {
        var d;
        if (looksLikeMSDate(s))
            d = parseMSDate(s);
        else if (looksLikeIsoDate(s))
            d = parseIsoDate(s);
        else
            return null;
    
        return formatDate(d);
    }
    

    아래 옛 대답은 날짜 대신 문자열의 객체, 또는 여전히 jQuery를에 갇혀 있다면 <1.5 어떻게 든 얻을 수 있도록 jQuery의 자신의 JSON 구문 분석에 서식이 날짜를 묶는 데 유용합니다.

    당신은 ASP.NET MVC와 jQuery를 1.4의 아약스 기능을 사용하는 경우와 Date 객체로 모든 날짜 시간 속성을 설정할 수 있습니다 :

    // Once
    jQuery.parseJSON = function(d) {return eval('(' + d + ')');};
    
    $.ajax({
        ...
        dataFilter: function(d) {
            return d.replace(/"\\\/(Date\(-?\d+\))\\\/"/g, 'new $1');
        },
        ...
    });
    

    jQuery를 1.5에서는 Ajax 호출에 컨버터 옵션을 사용하여 전 세계적으로 parseJSON 메서드를 재정 피할 수 있습니다.

    http://api.jquery.com/jQuery.ajax/

    불행하게도 당신이 자리에서 전 세계적으로 구문 분석 할 날짜를 얻기 위해 이전 평가 경로로 전환해야 - 그렇지 않으면 당신은 더 많은 경우에 따라 사후 구문 분석에 변환 할 필요가있다.


  9. 9.더 JSON 날짜 타입이 내장되지 않습니다. 이 모습은 어떤 시대에서 초 / 시간 (밀리 초)을 좋아한다. 당신은 시대를 알고 있다면 당신은 시간의 권리 금액에 추가하여 날짜를 만들 수 있습니다.

    더 JSON 날짜 타입이 내장되지 않습니다. 이 모습은 어떤 시대에서 초 / 시간 (밀리 초)을 좋아한다. 당신은 시대를 알고 있다면 당신은 시간의 권리 금액에 추가하여 날짜를 만들 수 있습니다.


  10. 10.나는이 문제에 대한 해결책을 검색했고 결국 나는이 날짜 형식과 더 많은 구문 분석 할 수있는 좋은 라이브러리입니다 moment.js을 가로 질러왔다.

    나는이 문제에 대한 해결책을 검색했고 결국 나는이 날짜 형식과 더 많은 구문 분석 할 수있는 좋은 라이브러리입니다 moment.js을 가로 질러왔다.

    var d = moment(yourdatestring)
    

    내가 당신과 함께 그것을 공유하고자 있도록 나를 위해 약간의 두통을 저장. :) 당신은 여기에 대한 좀 더 많은 정보를 찾을 수 있습니다 http://momentjs.com/


  11. 11.나는 인라인 스크립트로 객체를 작성할 때에 대한 Microsoft 시리얼 라이저에 의해 생성 된 것들 없애 유리창의 정규 표현식에 "문자를 추가 결국 :

    나는 인라인 스크립트로 객체를 작성할 때에 대한 Microsoft 시리얼 라이저에 의해 생성 된 것들 없애 유리창의 정규 표현식에 "문자를 추가 결국 :

    당신은 당신의 C # 코드 숨김에서 속성이 그렇다면 그런의 일

    protected string JsonObject { get { return jsSerialiser.Serialize(_myObject); }}
    

    그리고 당신의 영문에, 당신은

    <script type="text/javascript">
        var myObject = '<%= JsonObject %>';
    </script>
    

    당신이 뭔가를 얻을 것

    var myObject = '{"StartDate":"\/Date(1255131630400)\/"}';
    

    따옴표를 주목하라.

    평가가 제대로 직렬화 것이라고 형태로이를 얻으려면, 내가 사용 :

    myObject = myObject.replace(/"\/Date\((\d+)\)\/"/g, 'new Date($1)');
    

    나는 프로토 타입을 사용하고 사용 I 추가하기

    String.prototype.evalJSONWithDates = function() {
        var jsonWithDates = this.replace(/"\/Date\((\d+)\)\/"/g, 'new Date($1)');
        return jsonWithDates.evalJSON(true);
    }
    

  12. 12.당신은 오래된 브라우저 커버에 json2.js이 한으로 jQuery를 1.5에서 다음과 같이 아약스에서 오는 모든 날짜를 역 직렬화 할 수 있습니다 :

    당신은 오래된 브라우저 커버에 json2.js이 한으로 jQuery를 1.5에서 다음과 같이 아약스에서 오는 모든 날짜를 역 직렬화 할 수 있습니다 :

    (function () {
        var DATE_START = "/Date(";
        var DATE_START_LENGTH = DATE_START.length;
    
        function isDateString(x) {
            return typeof x === "string" && x.startsWith(DATE_START);
        }
    
        function deserializeDateString(dateString) {
            var dateOffsetByLocalTime = new Date(parseInt(dateString.substr(DATE_START_LENGTH)));
            var utcDate = new Date(dateOffsetByLocalTime.getTime() - dateOffsetByLocalTime.getTimezoneOffset() * 60 * 1000);
            return utcDate;
        }
    
        function convertJSONDates(key, value) {
          if (isDateString(value)) {
            return deserializeDateString(value);
          }
          return value;
        }
    
        window.jQuery.ajaxSetup({
          converters: {
            "text json": function(data) {
              return window.JSON.parse(data, convertJSONDates);
            }
          }
        });
    }());
    

    난 당신 (이 당신이해야) UTC로 서버에서 모든 날짜를 보낼 가정 로직을 포함; 소비자는이를 반영하는 적절한 틱 값이 자바 스크립트 Date 객체를 가져옵니다. 그것은 서버에서했던 것과 같은 값을 반환 할 날짜 등) (getUTCHours를 호출하고, 브라우저에 의해 결정되는 사용자의 로컬 시간대의 값을 반환합니다 ()는 getHours를 호출 그.

    즉 추가 상대적으로 쉬운 것입니다하지만 이것은 시간대 오프셋을 가진 계정 WCF 형식으로하지 않습니다.


  13. 13.JQuery와 UI의 날짜 선택기를 사용하여 - 정말에만 이미 jQuery를 UI를 포함하는 경우 의미가 있습니다 :

    JQuery와 UI의 날짜 선택기를 사용하여 - 정말에만 이미 jQuery를 UI를 포함하는 경우 의미가 있습니다 :

    $.datepicker.formatDate('MM d, yy', new Date(parseInt('/Date(1224043200000)/'.substr(6)))); 
    

    산출:


  14. 14.이 지나치게 생각하지 마십시오. 우리가 수십 년 동안했던 것처럼,이 시대 이후의 초 (밀리 초)의 수의 사실상의 표준 1970년 1월 1일 자정 GMT / UTC의 시대 / & C 오프셋 숫자를 전달합니다. 자바 스크립트는 C가 그것을 좋아, 자바를 좋아 그것을 좋아하고, 인터넷을 좋아한다.

    이 지나치게 생각하지 마십시오. 우리가 수십 년 동안했던 것처럼,이 시대 이후의 초 (밀리 초)의 수의 사실상의 표준 1970년 1월 1일 자정 GMT / UTC의 시대 / & C 오프셋 숫자를 전달합니다. 자바 스크립트는 C가 그것을 좋아, 자바를 좋아 그것을 좋아하고, 인터넷을 좋아한다.


  15. 15.이 답변 모두 한 가지 공통점이있다 : 단일 값 (일반적으로 문자열) 등 모두 저장 날짜.

    이 답변 모두 한 가지 공통점이있다 : 단일 값 (일반적으로 문자열) 등 모두 저장 날짜.

    또 다른 옵션은 JSON의 고유 한 구조를 활용, 숫자의 목록으로 날짜를 표현하는 것입니다 :

    { "name":"Nick",
      "birthdate":[1968,6,9] }
    

    물론, 당신은 반드시 대화의 양쪽 끝 (년, 월, 일) 형식에 동의 할 것, 그리고 날짜로 의미있는 분야 ...하지만 완전히 날짜의 문제를 피할 수있는 장점이있다 -to-문자열 변환. 전혀 문자열 - 그것은 모든 숫자입니다. 또한, 순서 사용 : 년, 월, 일 또한 날짜별로 적절한 정렬을 할 수 있습니다.

    그냥 여기 상자 밖에서 생각 - JSON 날짜가 문자열로 저장 할 필요가 없습니다.

    이 방법으로 그 일을 또 다른 보너스는 쉽게 (효율적) 배열 값의 방법 CouchDB를 핸들 쿼리를 활용하여 특정 연도 또는 월의 모든 레코드를 선택할 수 있다는 것입니다.


  16. 16.멋진 스레드에 게시 :

    멋진 스레드에 게시 :

    var d = new Date(parseInt('/Date(1224043200000)/'.slice(6, -2)));
    alert('' + (1 + d.getMonth()) + '/' + d.getDate() + '/' + d.getFullYear().toString().slice(-2));
    

  17. 17.당신은 여기에 설명 된대로 및 기타 장소에서 매우 조심하지 않으면 그냥 WCF이 소요, 여기에 "진드기 접근 방식을"또 다른 접근 방식을 추가하는 시간대에 문제가하는 경향이있다. 나는 이제 ISO 8601 형식을 사용하고 그래서 .NET 및 자바 스크립트 모두 정당이 시간대 오프셋을 포함 지원하는지. 아래는 세부 사항은 다음과 같습니다 :

    당신은 여기에 설명 된대로 및 기타 장소에서 매우 조심하지 않으면 그냥 WCF이 소요, 여기에 "진드기 접근 방식을"또 다른 접근 방식을 추가하는 시간대에 문제가하는 경향이있다. 나는 이제 ISO 8601 형식을 사용하고 그래서 .NET 및 자바 스크립트 모두 정당이 시간대 오프셋을 포함 지원하는지. 아래는 세부 사항은 다음과 같습니다 :

    WCF에서 / .NET :

    어디에서 CreationDate는 System.DateTime이다; ToString은 ( "O") 8601 호환 날짜 문자열이 ISO를 생성 .NET의 왕복 형식 지정자를 사용하고 있습니다

    new MyInfo {
        CreationDate = r.CreationDate.ToString("o"),
    };
    

    에서 자바 스크립트

    그냥 JSON 내가 날짜를 변경 수정 가서 검색 후 ISO 8601 날짜 문자열을 허용하는 날짜 생성자를 사용하여 자바 스크립트 Date 객체가 될 수 있습니다 ...

    $.getJSON(
        "MyRestService.svc/myinfo",
        function (data) {
            $.each(data.myinfos, function (r) {
                this.CreatedOn = new Date(this.CreationDate);
            });
            // Now each myinfo object in the myinfos collection has a CreatedOn field that is a real JavaScript date (with timezone intact).
           alert(data.myinfos[0].CreationDate.toLocaleString());
        }
    )
    

    당신이 자바 스크립트 날짜가되면 당신은 등 toDateString ()과, toLocaleString, 같은 모든 편리하고 신뢰할 수있는 날짜 방법을 사용할 수 있습니다


  18. 18.

    var newDate = dateFormat(jsonDate, "mm/dd/yyyy"); 
    

    jQuery 라이브러리를 사용하지 않고 다른 옵션이 있습니까?


  19. 19.이것은 또한 당신을 도울 수 않을 수 있습니다.

    이것은 또한 당신을 도울 수 않을 수 있습니다.

     function ToJavaScriptDate(value) { //To Parse Date from the Returned Parsed Date
            var pattern = /Date\(([^)]+)\)/;
            var results = pattern.exec(value);
            var dt = new Date(parseFloat(results[1]));
            return (dt.getMonth() + 1) + "/" + dt.getDate() + "/" + dt.getFullYear();
        }
    

  20. 20.이 같은 날짜를 얻을 :

    이 같은 날짜를 얻을 :

    "/Date(1276290000000+0300)/"
    

    몇 가지 예에서 날짜는 약간 다른 형식이다 :

    "/Date(12762900000000300)/"
    "Date(1276290000000-0300)"
    

    기타

    나는 다음과 같은 정규식 해낸 그래서 :

    /\/+Date\(([\d+]+)\)\/+/
    

    최종 코드는 다음과 같습니다

    var myDate = new Date(parseInt(jsonWcfDate.replace(/\/+Date\(([\d+-]+)\)\/+/, '$1')));
    

    희망이 도움이.

    최신 정보: 나는 Microsoft에서 제공하는이 링크를 발견 : 어떻게 JSON과 I 직렬화 날짜는 무엇입니까?

    이것은 우리 모두가 찾고있는 것 같이 보인다.


  21. 21.다음은 JSON 날짜를 구문 분석에 대한 매우 간단한 해결책이다. 귀하의 요구 사항에 따라 기능 아래를 사용합니다. 당신은 날짜 아래의 기능에 매개 변수로 가져 JSON 형식을 전달해야합니다 :

    다음은 JSON 날짜를 구문 분석에 대한 매우 간단한 해결책이다. 귀하의 요구 사항에 따라 기능 아래를 사용합니다. 당신은 날짜 아래의 기능에 매개 변수로 가져 JSON 형식을 전달해야합니다 :

    function JSONDate(dateStr) {
        var m, day;
        jsonDate = dateStr;
        var d = new Date(parseInt(jsonDate.substr(6)));
        m = d.getMonth() + 1;
        if (m < 10)
            m = '0' + m
        if (d.getDate() < 10)
            day = '0' + d.getDate()
        else
            day = d.getDate();
        return (m + '/' + day + '/' + d.getFullYear())
    }
    
    function JSONDateWithTime(dateStr) {
        jsonDate = dateStr;
        var d = new Date(parseInt(jsonDate.substr(6)));
        var m, day;
        m = d.getMonth() + 1;
        if (m < 10)
            m = '0' + m
        if (d.getDate() < 10)
            day = '0' + d.getDate()
        else
            day = d.getDate();
        var formattedDate = m + "/" + day + "/" + d.getFullYear();
        var hours = (d.getHours() < 10) ? "0" + d.getHours() : d.getHours();
        var minutes = (d.getMinutes() < 10) ? "0" + d.getMinutes() : d.getMinutes();
        var formattedTime = hours + ":" + minutes + ":" + d.getSeconds();
        formattedDate = formattedDate + " " + formattedTime;
        return formattedDate;
    }
    

  22. 22.당신은 또한 당신이 다른 지역화 된 형식으로 계약을 계획하고 날짜 값으로 다른 작업을 수행 할 때 유용 자바 스크립트 라이브러리 moment.js을 사용할 수 있습니다 :

    당신은 또한 당신이 다른 지역화 된 형식으로 계약을 계획하고 날짜 값으로 다른 작업을 수행 할 때 유용 자바 스크립트 라이브러리 moment.js을 사용할 수 있습니다 :

    function getMismatch(id) {
        $.getJSON("Main.aspx?Callback=GetMismatch",
        { MismatchId: id },
    
        function (result) {
            $("#AuthMerchId").text(result.AuthorizationMerchantId);
            $("#SttlMerchId").text(result.SettlementMerchantId);
            $("#CreateDate").text(moment(result.AppendDts).format("L"));
            $("#ExpireDate").text(moment(result.ExpiresDts).format("L"));
            $("#LastUpdate").text(moment(result.LastUpdateDts).format("L"));
            $("#LastUpdatedBy").text(result.LastUpdateNt);
            $("#ProcessIn").text(result.ProcessIn);
        }
        );
        return false;
    }
    

    현지화를 설정하는 것은 프로젝트에 (당신이 momentjs.com에서 그들을 얻을) 구성 파일을 추가하고 언어를 구성하는 것만 큼 쉽습니다 :

    moment.lang('de');
    

  23. 23.날짜 ISO 표준을 확인; 이런 종류의 :

    날짜 ISO 표준을 확인; 이런 종류의 :

    yyyy.MM.ddThh:mm
    

    그것은 2008.11.20T22된다 : (18).


  24. 24.이 절망적이다. 내 솔루션 구문 분석하는 것이었다 "/과 /"JSON은 날짜 리터럴이 없을 수 있지만 있도록 ASP.NET의 JavaScriptSerializer에 의해 생성 된 값에서, 그것은 여전히 ​​무엇을 모든 나는 정말 날짜 등과 같은 브라우저에 의해 해석됩니다 원하는 : { "MyDate가"날짜 (123456789)}

    이 절망적이다. 내 솔루션 구문 분석하는 것이었다 "/과 /"JSON은 날짜 리터럴이 없을 수 있지만 있도록 ASP.NET의 JavaScriptSerializer에 의해 생성 된 값에서, 그것은 여전히 ​​무엇을 모든 나는 정말 날짜 등과 같은 브라우저에 의해 해석됩니다 원하는 : { "MyDate가"날짜 (123456789)}

    날짜 시간에 대한 사용자 정의 JavaScriptConverter?

    나는 로이 땜장이의 의견의 정확성을 강조해야합니다. 이것은 법적 JSON되지 않습니다. 그것은 자바 스크립트에 대한 문제가되기 전에 문제를 제거하기 위해 서버에 더러운, 더러운 해킹입니다. 그것은 JSON 파서를 질식 것입니다. 나는 땅에 떨어져 얻기 위해 그것을 사용하지만, 나는 더 이상이 사용하지 마십시오. 그러나, 나는 아직 다른 곳에서 언급 한 바와 같이, 예를 들어, 서버가 날짜를 포맷하는 방법 ISO 변화와 함께 최고의 응답 거짓말을 느낍니다.


  25. 25.늦은 포스트하지만,이 게시물을 검색 할 사람들을 위해.

    늦은 포스트하지만,이 게시물을 검색 할 사람들을 위해.

    이 상상 :

        [Authorize(Roles = "Administrator")]
        [Authorize(Roles = "Director")]
        [Authorize(Roles = "Human Resources")]
        [HttpGet]
        public ActionResult GetUserData(string UserIdGuidKey)
        {
            if (UserIdGuidKey!= null)
            {
                var guidUserId = new Guid(UserIdGuidKey);
                var memuser = Membership.GetUser(guidUserId);
                var profileuser = Profile.GetUserProfile(memuser.UserName);
                var list = new {
                                  UserName = memuser.UserName,
                                  Email = memuser.Email ,
                                  IsApproved = memuser.IsApproved.ToString() ,
                                  IsLockedOut = memuser.IsLockedOut.ToString() ,
                                  LastLockoutDate = memuser.LastLockoutDate.ToString() ,
                                  CreationDate = memuser.CreationDate.ToString() ,
                                  LastLoginDate = memuser.LastLoginDate.ToString() ,
                                  LastActivityDate = memuser.LastActivityDate.ToString() ,
                                  LastPasswordChangedDate = memuser.LastPasswordChangedDate.ToString() ,
                                  IsOnline = memuser.IsOnline.ToString() ,
                                  FirstName = profileuser.FirstName ,
                                  LastName = profileuser.LastName ,
                                  NickName = profileuser.NickName ,
                                  BirthDate = profileuser.BirthDate.ToString() ,
                };
                return Json(list, JsonRequestBehavior.AllowGet);
            }
            return Redirect("Index");
        }
    

    당신이 볼 수 있듯이, 나는 "자동"제네릭을 만드는 C # 3.0의 기능을 활용하고있다. 그것은 조금 게으른하지만 같은 I과 작동합니다. 그냥 참고 : 프로필 내 웹 응용 프로그램 프로젝트를 위해 만든 사용자 정의 클래스입니다.


  26. 26.참고로, 서버 측에서 파이썬을 사용하는 모든 사용자를위한 :. datetime.datetime를 () ctime이 ()는 "새로운 날짜 ()"에 의해 기본적으로 분석 할 수있는 문자열을 반환합니다. 새 datetime.datetime 인스턴스 (예 : datetime.datetime.now와 같은)를 만들 경우 즉, 문자열은 JSON 문자열에 포함 할 수 있으며, 그 문자열은 날짜 생성자에 첫 번째 인수로 전달 될 수 있습니다. 아직 예외를 발견하지 않은,하지만 나도 너무 엄격하게 그것을 테스트하지 않았습니다.

    참고로, 서버 측에서 파이썬을 사용하는 모든 사용자를위한 :. datetime.datetime를 () ctime이 ()는 "새로운 날짜 ()"에 의해 기본적으로 분석 할 수있는 문자열을 반환합니다. 새 datetime.datetime 인스턴스 (예 : datetime.datetime.now와 같은)를 만들 경우 즉, 문자열은 JSON 문자열에 포함 할 수 있으며, 그 문자열은 날짜 생성자에 첫 번째 인수로 전달 될 수 있습니다. 아직 예외를 발견하지 않은,하지만 나도 너무 엄격하게 그것을 테스트하지 않았습니다.


  27. 27.Mootools의 솔루션 :

    Mootools의 솔루션 :

    new Date(Date(result.AppendDts)).format('%x')
    

    Mootools의-더 필요합니다. 테스트 사용 Mootools의-1.2.3.1-더 파이어 폭스 3.6.3과 IE 7.0.5730.13에


  28. 28.

    var obj = eval('(' + "{Date: \/Date(1278903921551)\/}".replace(/\/Date\((\d+)\)\//gi, "new Date($1)") + ')');
    var dateValue = obj["Date"];
    

  29. 29.페이지의 UI를 jQuery 플러그인을 추가 :

    페이지의 UI를 jQuery 플러그인을 추가 :

    function DateFormate(dateConvert) {
        return $.datepicker.formatDate("dd/MM/yyyy", eval('new ' + dateConvert.slice(1, -1)));
    };
    

  30. 30.무엇 .NET 반환하는 경우 ...

    무엇 .NET 반환하는 경우 ...

    return DateTime.Now.ToString("u"); //"2013-09-17 15:18:53Z"
    

    그리고 자바 스크립트에서 ...

    var x = new Date("2013-09-17 15:18:53Z");
    
  31. from https://stackoverflow.com/questions/206384/how-do-i-format-a-microsoft-json-date by cc-by-sa and MIT license