문제

나는 첫 균열을 취하고있다 Ajax jQuery와 함께. 내 페이지에 데이터를 가져 오지만 날짜 데이터 유형에 대해 반환되는 JSON 데이터에 문제가 있습니다. 기본적으로 나는 다음과 같은 것처럼 보이는 문자열을 받고 있습니다.

/Date(1224043200000)/

완전히 새로운 사람으로부터 JSON에 이르기까지 - 이것을 짧은 날짜 형식으로 어떻게 포맷합니까? jQuery 코드 어딘가에 처리해야합니까? 나는 시도했다 jQuery.UI.datepicker 플러그인 사용 $.datepicker.formatDate() 아무런 성공도없이.

참고 : 여기에 답을 조합하여 제가 생각해 낸 해결책은 다음과 같습니다.

function getMismatch(id) {
  $.getJSON("Main.aspx?Callback=GetMismatch",
    { MismatchId: id },

    function (result) {
      $("#AuthMerchId").text(result.AuthorizationMerchantId);
      $("#SttlMerchId").text(result.SettlementMerchantId);
      $("#CreateDate").text(formatJSONDate(Date(result.AppendDts)));
      $("#ExpireDate").text(formatJSONDate(Date(result.ExpiresDts)));
      $("#LastUpdate").text(formatJSONDate(Date(result.LastUpdateDts)));
      $("#LastUpdatedBy").text(result.LastUpdateNt);
      $("#ProcessIn").text(result.ProcessIn);
    }
  );

  return false;
}

function formatJSONDate(jsonDate) {
  var newDate = dateFormat(jsonDate, "mm/dd/yyyy");
  return newDate;
}

이 솔루션은 콜백 메소드에서 내 객체를 가져 와서 날짜 형식 라이브러리를 사용하여 페이지의 날짜를 올바르게 표시했습니다.

도움이 되었습니까?

해결책

eval() 필요가 없습니다. 이것은 잘 작동합니다 :

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

그만큼 substr() 함수는 /Date( 부분, 그리고 parseInt() 함수는 정수를 가져오고 무시합니다 )/ 결국. 결과 번호가 전달됩니다 Date 건설자.


나는 의도적으로 Radix를 제외했다 (두 번째 논쟁은 parseInt); 보다 아래의 내 의견.

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

ISO-8601 형식의 JSON 날짜의 경우 문자열을 Date 건설자:

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

다른 팁

이것을 사용하여 JSON으로부터 날짜를 얻을 수 있습니다.

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

그런 다음 사용할 수 있습니다 JavaScript 날짜 형식 원하는대로 표시하기 위해 스크립트 (조정 및 Gzipped시 1.2 KB).

NewTonsoft를 사용하는 사람들을 위해 json.net, 그것을 통해 그것을하는 방법을 읽으십시오 IE8의 Native JSON, Firefox 3.5 Plus JSON.NET.

또한 json.net이 작성한 날짜 형식 변경에 관한 문서는 유용합니다.json.net과의 일련링 날짜

너무 게으른 사람들을 위해 여기에 빠른 단계가 있습니다. JSON은 느슨한 DateTime 구현이 있으므로 사용해야합니다. IsoDateTimeConverter(). JSON.NET 4.5이므로 기본 날짜 형식은 ISO이므로 아래 코드가 필요하지 않습니다.

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

JSON은 다음과 같이 올 것입니다

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

마지막으로, ISO 날짜를 JavaScript 날짜로 변환하는 일부 JavaScript :

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);

원래 예 :

/Date(1224043200000)/  

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

여기서 대답이 도움이되었지만 시간대 GMT 오프셋이 WCF JSON에서 반환 된 숫자에 추가되는 것으로 보이면서 Regex에 대한 약간의 편집이 필요합니다.

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; }
    ...
}

"Field2"가 서비스에서 JSON으로 반환되면 값은 다음과 같습니다.

/Date(1224043200000-0600)/

값의 일부로 포함 된 시간대 오프셋에 주목하십시오.

수정 된 Regex :

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

그것은 약간 더 열렬하고 첫 번째 숫자뿐만 아니라 파렌들 사이의 모든 것을 잡습니다. 결과 Time Sinze 1970, + 타임 존 오프셋은 모두 날짜 개체를 얻기 위해 Eval에 공급 될 수 있습니다.

교체에 대한 JavaScript의 결과 라인은 다음과 같습니다.

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

자신을 반복하지 마십시오 - 사용 날짜 변환을 자동화하십시오 $.parseJSON()

게시물에 대한 답변은 JavaScript 날짜로 수동 날짜 변환을 제공합니다. 나는 jQuery를 확장했다 $.parseJSON() 조금만 지시하면 날짜를 자동으로 구문 분석 할 수 있습니다. ASP.NET 서식 날짜를 처리합니다 (/Date(12348721342)/)뿐만 아니라 ISO 형식 날짜 (2010-01-01T12.34.56.789Z)는 브라우저 (및 JSON2.JS와 같은 라이브러리)에서 Native JSON 기능에 의해 지원됩니다.

그래도. 데이트 변환 코드를 반복해서 반복하고 싶지 않다면 읽으십시오. 이 블로그 게시물 그리고 인생을 조금 더 쉽게 만들 수있는 코드를 얻으십시오.

JavaScript로 말하면

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

당신은 그것이 올바른 날짜임을 알게 될 것이며, 모든 프레임 워크와 함께 JavaScript 코드의 어느 곳에서나 사용할 수 있습니다.

데모를 확인하려면 여기를 클릭하십시오

JavaScript/jQuery

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();

결과 - "10/15/2008"

업데이트되었습니다

우리는 Microsoft의 ASP.NET 내장 JSON 형식에 대처 해야하는 내부 UI 라이브러리가 있습니다. /Date(msecs)/, 여기에서 원래 물었고 JSON.NET를 포함한 대부분의 JSON의 날짜 형식 2014-06-22T00:00:00.0. 또한 우리는 대처해야합니다 Oldie는 10 진수 이하에 대처할 수 없음.

우리는 먼저 우리가 소비하는 데이트를 감지하고 일반 JavaScript로 구문 분석합니다. Date 객체, 그런 다음 포맷하십시오.

1) Microsoft 날짜 형식을 감지합니다

// 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) Parse MS 날짜 형식 :

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

4) ISO 날짜 형식을 구문 분석합니다.

우리는 최소한 3 밀리 초의 장소를 갖도록 표준 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) 고정 된 3 밀리 초 소수점 자리의 구문 분석 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의 JSON 구문 분석으로 묶는 데 유용하므로 문자열 대신 날짜 객체를 얻거나 여전히 jQuery <1.5에 갇힌 경우

오래된 대답

ASP.NET MVC와 함께 jQuery 1.4의 Ajax 함수를 사용하는 경우 모든 DateTime 속성을 다음과 같이 날짜 개체로 전환 할 수 있습니다.

// Once
jQuery.parseJSON = function(d) {return eval('(' + d + ')');};

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

jQuery 1.5에서는 재정의를 피할 수 있습니다 parseJSON AJAX 호출에서 변환기 옵션을 사용하여 전 세계적으로 메소드.

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

불행히도 전 세계적으로 구문 분석하기 위해서는 이전 평가 경로로 전환해야합니다. 그렇지 않으면 패러스 이후에 더 많은 사례별로 전환해야합니다.

나는 또한이 문제에 대한 해결책을 찾아야했고 결국 나는이 날짜 형식을 구문 분석 할 수있는 멋진 라이브러리 인 순간을 만났다.

var d = moment(yourdatestring)

그것은 나에게 약간의 두통을 저장했기 때문에 당신과 공유 할 것이라고 생각했습니다. :)
이에 대한 자세한 정보는 다음과 같습니다. http://momentjs.com/

내장 날짜 유형이 없습니다 JSON. 이것은 일부 시대에서 초 / 밀리 초의 수와 같습니다. 시대를 알고 있다면 적절한 시간에 추가하여 날짜를 만들 수 있습니다.

결국 인라인 스크립트에 객체를 작성할 때 Microsoft Serializer가 생성 한 것들을 제거하기 위해 "캐릭터의 정규 표현식에 문자를 추가했습니다.

따라서 C#에 속성이있는 경우 코드-하인 그것은 같은 것입니다

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

그리고 당신의 ASPX에서 당신은 가지고 있습니다

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

당신은 같은 것을 얻을 것입니다

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

이중 인용문을 주목하십시오.

이것을 평가하는 형태로 가져 가기 위해 필수화 할 수있는 형태로 사용했습니다.

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

나는 사용한다 원기 그리고 그것을 사용하기 위해 나는 추가했다

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

jQuery 1.5에서, 당신이 가진 한 JSON2.JS 구형 브라우저를 다루려면 다음과 같이 Ajax에서 오는 모든 날짜를 사로화 할 수 있습니다.

(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로 전송한다고 가정하는 논리를 포함 시켰습니다. 그런 다음 소비자는 JavaScript를 얻습니다 Date 이를 반영하기 위해 적절한 진드기 값을 가진 객체. 즉, 전화 getUTCHours(), 날짜 등은 서버에서와 동일한 값을 반환하고 getHours() 브라우저에서 결정한대로 사용자의 로컬 타임 존의 값을 반환합니다.

이것은 고려되지 않습니다 WCF 타임 존 오프셋이있는 형식은 비교적 쉽게 추가하기가 쉽습니다.

이것을 지나치게 생각하지 마십시오. 우리가 수십 년 동안했던 것처럼, 1970 년 1 월 1 일 Midnight GMT/UTC/& C의 Depacto 표준 에포크 에서이 시대 이후 몇 초 (또는 밀리 초)에서 숫자 오프셋을 통과하십시오. JavaScript는 그것을 좋아하고, Java는 그것을 좋아하고, C를 좋아하고, 인터넷은 그것을 좋아합니다.

jQuery UI DatePicker 사용 - 이미 jQuery UI를 포함하는 경우에만 의미가 있습니다.

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

산출:

2008 년 10 월 15 일

이 답변은 모두 공통점이 있습니다. 모두 매장 날짜가 단일 값 (일반적으로 문자열)으로 표시됩니다.

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

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

물론, 대화의 양쪽 끝이 형식 (연도, 월, 일)에 동의하고 어떤 필드가 날짜가 될 것인지에 동의해야하지만 ... 날짜 문제를 완전히 피할 수 있다는 이점이 있습니다. -문자열 변환. 그것은 모든 숫자입니다 - 문자열이 전혀 없습니다. 또한 순서 : 연도, 월, 일을 사용하면 날짜별로 정렬 할 수 있습니다.

여기서 상자 밖에서 생각하는 것만으로는 JSON 날짜가 문자열로 저장 될 필요는 없습니다.

이런 식으로 수행하는 또 다른 보너스 couchdb 배열 값의 쿼리를 처리합니다.

멋진 스레드로 게시 :

var d = new Date(parseInt('/Date(1224043200000)/'.slice(6, -2)));
alert('' + (1 + d.getMonth()) + '/' + d.getDate() + '/' + d.getFullYear().toString().slice(-2));
var newDate = dateFormat(jsonDate, "mm/dd/yyyy"); 

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

여기에 또 다른 접근 방식을 추가하기 위해 "진드기 접근"이 WCF 설명과 같이 조심하지 않으면 테이크는 시간이 지남에 문제가 발생하기 쉽습니다. 여기 그리고 다른 곳에서. 그래서 나는 이제 .net & javaScript가 타임 존 오프셋을 포함하는 ISO 8601 형식을 사용하고 있습니다. 다음은 세부 사항입니다.

WCF/.NET에서 :

CreationDate는 시스템입니다 .dateTime; ToString ( "O")은 .NET 's를 사용하고 있습니다. 왕복 형식 지정자 ISO 8601 대응 날짜 문자열이 생성됩니다

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

JavaScript에서

JSON을 검색 한 직후 ISO 8601 날짜 문자열을 수락하는 날짜 생성자를 사용하여 날짜를 JavasRipt 날짜 개체로 고정합니다 ...

$.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());
    }
)

JavaScript 날짜가 있으면 편리하고 신뢰할 수있는 날짜 방법을 모두 사용할 수 있습니다. 토사 스트링, Tolocalestring, 등.

나는 다음과 같은 날짜를 얻는다 :

"/Date(1276290000000+0300)/"

일부 예에서는 날짜가 약간 다른 형식입니다.

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

등.

그래서 나는 다음 regexp를 생각해 냈습니다.

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

그리고 최종 코드는 다음과 같습니다.

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

도움이되기를 바랍니다.

업데이트 : Microsoft 에서이 링크를 찾았습니다.JSON과 일련의 날짜를 어떻게 직렬화합니까?

이것은 우리 모두가 찾고있는 것 같습니다.

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

아래는 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;
}

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

 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();
    }

날짜 ISO 표준을 확인하십시오. 다음과 같은 종류 :

yyyy.MM.ddThh:mm

그것은됩니다 2008.11.20T22:18.

이것은 실망 스럽다. 내 해결책은 asp.net의 javascriptserializer가 생성 한 값에서 " / 및 /"를 구문 분석하여 JSON이 날짜 문자통이 없지만 브라우저에 의해 여전히 날짜로 해석됩니다. 원하다:{"myDate":Date(123456789)}

DateTime에 대한 사용자 정의 JavaScriptConverter?

Roy Tinker의 의견의 정확성을 강조해야합니다. 이것은 합법적 인 JSON이 아닙니다. JavaScript의 문제가되기 전에 문제를 제거하기 위해 서버의 더럽고 더러운 해킹입니다. JSON 파서를 질식시킬 것입니다. 나는 그것을 땅에서 내리는 데 사용했지만 더 이상 이것을 사용하지 않습니다. 그러나 나는 여전히 다른 곳에서 언급 된대로 서버가 날짜를 형식화하는 방식을 바꾸는 데 여전히 가장 좋은 답변이라고 생각합니다.

추가 jQuery UI 페이지에 플러그인 :

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

JavaScript 라이브러리를 사용할 수도 있습니다 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');

늦은 게시물이지만이 게시물을 검색 한 사람들을 위해.

이것을 상상해보십시오 :

    [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의 기능을 사용하고 있습니다. 약간 게으르다. 그러나 나는 그것을 좋아하고 작동한다. 단지 참고 : 프로필은 웹 애플리케이션 프로젝트를 위해 만든 사용자 정의 클래스입니다.

mootools 솔루션 :

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

Mootools가 필요합니다. Firefox 3.6.3 및 IE 7.0.5730.13에서 mootools-1.2.3.1-more를 사용하여 테스트했습니다

FYI, 서버 측에서 Python을 사용하는 사람은 다음과 같습니다. 즉, 새 dateTime.dateTime 인스턴스 (예 : dateTime.dateTime.now)를 작성하면 문자열을 JSON 문자열에 포함시킬 수 있으며 해당 문자열은 날짜 생성자에게 첫 번째 인수로 전달 될 수 있습니다. 아직 예외를 찾지 못했지만 너무 엄격하게 테스트하지 않았습니다.

만약 .그물 보고...

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

그리고 JavaScript에서 ...

var x = new Date("2013-09-17 15:18:53Z");
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top