当前位置:  开发笔记 > 编程语言 > 正文

如何格式化Microsoft JSON日期?

如何解决《如何格式化MicrosoftJSON日期?》经验,为你挑选了31个好方法。

我正在使用jQuery 在Ajax上进行第一次破解.我将数据放到我的页面上,但是我在为Date数据类型返回的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;
}

此解决方案从回调方法获取我的对象,并使用日期格式库正确显示页面上的日期.



1> Roy Tinker..:

Eval不是必需的.这样可以正常工作:

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

substr函数取出"/ Date("部分,并且parseInt函数获取整数并忽略最后的")/".生成的数字将传递到Date构造函数中.

编辑:我故意遗漏了基数(第二个参数为parseInt); 请参阅下面的评论.此外,我完全同意Rory的评论:ISO-8601日期比这种旧格式更受欢迎 - 因此这种格式通常不应用于新开发.请参阅优秀的Json.NET库,以获得使用ISO-8601格式序列化日期的绝佳选择.

对于ISO-8601格式的JSON日期,只需将字符串传递给Date构造函数:

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


你能用radix var date = new Date(parseInt(jsonDate.substr(6),10))更新它吗?
值得注意的是,这种日期格式非常糟糕,一般的举措是采用JSON中的ISO-8601格式化日期.请参阅http://www.hanselman.com/blog/OnTheNightmareThatIsJSONDatesPlusJSONNETAndASPNETWebAPI.aspx
@JamesKyburz:每个规则都有例外,我认为这是一个例外情况..NET _never_中的JSON日期编号具有前导"0",因此我们可以安全地省略基数.
@Broam:如果MS改变格式,两种方法(替换功能和这个答案)都必须改变.
此方法无法考虑时区,因此当您的服务器和用户位于不同的时区时会导致严重问题.我在下面发布了一个答案,解释了在WCF和Javascript方面处理它的快速简便方法:http://stackoverflow.com/a/10743718/51061
@LeeWhitney:是的,但它会忽略后缀(这是一个时区偏移).parseInt函数从传递给它的字符串的前面抓取数字,直到它遇到非数字字符或字符串的结尾,此时它停止并返回数字结果.
@MishaZaslavsky:通常,此格式不应用于新开发.请参阅[Json.NET](http://james.newtonking.com/json)库,以获得使用ISO-8601序列化日期的绝佳选择.
@DranDane将Date()类内置到javascript中.

2> Panos..:

您可以使用它来从JSON获取日期:

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

然后,您可以使用JavaScript日期格式脚本(缩小和压缩时为1.2 KB)根据需要显示它.


@rball,废话:`jsonDate = new Date(+ jsonDate.replace(/\/ Date \((\ d +)\)\ //,'$ 1'));`
pst是正确的,可以通过各种方式执行此操作而无需'eval'.Crockford说"eval Is Evil"因为它的可读性较差而且安全性较低,而且他可能进一步暗示它效率更低,更危险,因为它击中了javascript编译器.
@Edy:`new Function`几乎和`eval`一样糟糕:http://dev.opera.com/articles/view/efficient-javascript/?page = 2#avoideval
该行没有任何问题,序列是\ //.第一个斜杠被转义,所以它不像评论那样算.这是你的编辑欺骗你,线路将正常工作.
@Edy:这是另一种形式的评价,就像'邪恶'一样.解析字符串(参见下面的答案)
对于任何想知道为什么'eval`是一个坏主意的人,尝试使用`jsonDate ='alert(\'NerNer \');/Date(1234567890123)/'来运行这个答案中的代码.
@ BrainSlugs83:*是*安全问题.如果字符串与正则表达式不匹配,或者在匹配位之前或之后有东西(毕竟,它没有用^和$锚定),则可以将任意文本传递给eval.你可以在它周围包含一个`if`语句,但是你需要注意这个条件只有在匹配的regex匹配时才会匹配,而不是更频繁.这只表明安全性很棘手.如果你不使用eval,你不需要考虑所有这些事情.您的生活将变得更加轻松,您将编写更安全的软件.

3> Jason Jong..:

对于那些使用Newtonsoft Json.NET的人,请阅读如何通过IE8,Firefox 3.5和Json.NET中的Native JSON进行操作.

另外,关于更改Json.NET编写的日期格式的文档很有用: 使用Json.NET序列化日期

对于那些懒得的人来说,这里是快速的步骤.由于JSON具有松散的DateTime实现,因此您需要使用IsoDateTimeConverter().请注意,由于Json.NET 4.5的默认日期格式是ISO,因此不需要下面的代码.

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

JSON将通过as

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

最后,一些JavaScript将ISO日期转换为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;
}

我这样用它

$("").text(isoDateReviver(item.fieldName).toLocaleString()).appendTo("#" + divName);


JavaScript Date构造函数可以为你解析字符串:`new Date("2009-04-12T20:44:55")`
警告 - Date()构造函数格式和解析在ECMAScript 6之前是非标准的.例如,IE 9将构造函数的日期视为本地时间,即使它在IS0-8601中,其他地方也暗示为UCT.如果您支持旧浏览器,请不要依赖日期构造函数.http://codeofmatt.com/2013/06/07/javascript-date-type-is-horribly-broken/

4> 小智..:

原来的例子:

/Date(1224043200000)/  

不反映WCF使用内置JSON序列化通过WCF REST发送日期时使用的格式.(至少在.NET 3.5,SP1上)

我发现这里的答案很有帮助,但是需要对正则表达式进行轻微编辑,因为看起来时区GMT偏移量被附加到WCF JSON中返回的数字(自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; }
    ...
}

当"Field2"作为Json从服务返回时,值为:

/Date(1224043200000-0600)/

注意作为值的一部分包含的时区偏移量.

修改后的正则表达式:

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

它稍微有点急切,抓住了parens之间的一切,而不仅仅是第一个数字.产生的时间是1970年的时间,加上时区偏移量都可以输入到eval中以获得日期对象.

替换的JavaScript结果行是:

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


这是错误的,新的日期(1224043200000-0600)将只从日期减去600,在这种情况下600毫秒,而不是6小时.

5> Robert Korit..:

不要重复自己 - 使用自动化日期转换 $.parseJSON()

您的帖子的答案提供手动日期转换为JavaScript日期.我已经扩展了jQuery $.parseJSON(),所以它可以在你指示日期时自动解析日期.它处理ASP.NET格式化的日期(/Date(12348721342)/)以及2010-01-01T12.34.56.789Z浏览器(和json2.js等库)中的本机JSON函数支持的ISO格式的日期().

无论如何.如果您不想一遍又一遍地重复日期转换代码,我建议您阅读此博客文章并获取能让您的生活更轻松的代码.



6> John Boker..:

如果你用JavaScript说,

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

您将看到它是正确的日期,您可以在任何框架的JavaScript代码中使用它.


您需要将其写为"新日期(1224043200000)".
这也是我想到的,除非它最终成为:var thedate =/Date(1224043200000)/; 至少对于我来说...
日期()和日期(1224043200000)在Chrome和Firefox中都提供相同的结果.不确定这是否适用于旧浏览器,但这个答案现在在浏览器中不起作用.

7> 小智..:

点击这里查看演示

的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"



8> Chris Moschi..:
更新

我们有一个内部UI库,它必须处理Microsoft的ASP.NET内置JSON格式,比如/Date(msecs)/最初在这里询问,以及大多数JSON的日期格式,包括JSON.NET,如2014-06-22T00:00:00.0.此外,我们需要应对oldIE无法处理除小数点后3位以外的任何内容.

我们首先检测我们正在使用哪种日期,将其解析为普通的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)解析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)使用固定的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解析非常有用,因此您可以获取Date对象而不是字符串,或者如果您仍然以某种方式陷入jQuery <1.5.

老答案

如果您在ASP.NET MVC中使用jQuery 1.4的Ajax函数,则可以使用以下命令将所有DateTime属性转换为Date对象:

// 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调用中的converter选项来避免全局覆盖该方法.

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

不幸的是,您必须切换到较旧的eval路由才能使Dates在全局内进行解析 - 否则您需要在解析后逐个转换它们.



9> johnstok..:

JSON中没有内置日期类型.这看起来像某个时代的秒数/毫秒数.如果你知道这个纪元,你可以通过添加适当的时间来创建日期.


@ BrainSlug83 - 这个答案为断言JSON没有内置日期类型提供了参考.如果您不同意,请提供替代参考.(你没有想到一个特定的框架已经决定使用字符串格式来表示日期吗?这不是JSON标准的一部分,实际上它不可能是因为它会使得不可能包含一个不是的字符串应该被视为日期,但碰巧有一组与日期模式匹配的字符.)

10> Venemo..:

我还必须寻找这个问题的解决方案,最后我遇到了moment.js这是一个很好的库,可以解析这个日期格式等等.

var d = moment(yourdatestring)

它为我节省了一些头痛,所以我想我会和你分享.:)
您可以在这里找到更多相关信息:http://momentjs.com/



11> 小智..:

我最后将"字符添加到Panos的正则表达式中,以摆脱Microsoft序列化程序在将对象写入内联脚本时生成的字符:

因此,如果您的C#代码隐藏中有一个属性,那就像

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

在你的aspx中你有


你会得到类似的东西

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

请注意双引号.

为了将其转换为eval将正确反序列化的形式,我使用了:

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

我使用Prototype并使用它我添加了

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



12> Domenic..:

在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(您应该); 然后,消费者获得一个Date具有正确滴答值的JavaScript 对象来反映这一点.也就是说,getUTCHours()在日期上调用等将返回与在服务器上执行的值相同的值,并且调用getHours()将返回由用户的浏览器确定的用户本地时区中的值.

这没有考虑具有时区偏移的WCF格式,尽管这可以相对容易地添加.



13> 小智..:

使用jQuery UI datepicker - 只有在你已经包含jQuery UI时才真正有意义:

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

输出:

2008年10月15日



14> Jé Queue..:

不要过度思考这个.就像我们已经做了几十年一样,从1970年1月1日午夜GMT/UTC /&c的事实标准时期传递一个数字偏移量,从这个时代开始的秒数(或毫秒).JavaScript喜欢它,Java喜欢它,C喜欢它,而互联网喜欢它.


太糟糕了,有20多个时代可供选择.http://en.wikipedia.org/wiki/Epoch_(reference_date)

15> Nick Perkins..:

这些答案中的每一个都有一个共同点:它们都将日期存储为单个值(通常是字符串).

另一种选择是利用JSON的固有结构,并将日期表示为数字列表:

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

当然,您必须确保对话的两端都同意格式(年,月,日)以及哪些字段是日期,...但它具有完全避免日期问题的优势到字符串转换.这都是数字 - 根本没有字符串.此外,使用订单:年,月,日也允许按日期进行适当的排序.

只是在这里思考 - JSON日期不必存储为字符串.

这样做的另一个好处是,您可以通过利用CouchDB处理数组值查询的方式,轻松(并有效)选择给定年份或月份的所有记录.



16> Dan Beam..:

在令人敬畏的帖子中发帖:

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



17> Scott Willek..:

只是为了在这里添加另一种方法,如果您不是非常小心,如此处和其他地方所描述的那样,WCF采用的"滴答方法" 很容易出现时区问题.所以我现在使用的是ISO 8601格式,.NET和JavaScript都支持包含时区偏移的格式.以下是详细信息:

在WCF/.NET中:

CreationDate是System.DateTime; ToString("o")使用.NET的往返格式说明符,生成符合ISO 8601标准的日期字符串

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

在JavaScript中

在检索JSON之后,我使用接受ISO 8601日期字符串的Date构造函数来修复日期为JavaSript 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());
    }
)

获得JavaScript日期后,您可以使用所有方便可靠的Date方法,如toDateString,toLocaleString等.



18> Bilgin Kılıç..:
var newDate = dateFormat(jsonDate, "mm/dd/yyyy"); 

没有使用jQuery库还有其他选择吗?



19> Ravi Mehta..:

这也可以帮到你.

 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> Thomas Hanse..:

检查日期ISO标准; 有点像这样:

yyyy.MM.ddThh:mm

它变成了2008.11.20T22:18.



21> Michael Vash..:

我得到这样的日期:

"/Date(1276290000000+0300)/"

在某些示例中,日期格式略有不同:

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

等等

所以我提出了以下RegExp:

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

最后的代码是:

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

希望能帮助到你.

更新:我在Microsoft找到了这个链接: 如何使用JSON序列化日期?

这似乎是我们都在寻找的.



22> StarTrekRedn..:

这令人沮丧.我的解决方案是从ASP.NET的JavaScriptSerializer生成的值中解析出"/和/",这样虽然JSON可能没有日期文字,但它仍然被浏览器解释为日期,这就是我真正的所有想:{"myDate":Date(123456789)}

DateTime的自定义JavaScriptConverter?

我必须强调Roy Tinker评论的准确性.这不是合法的JSON.在服务器成为JavaScript问题之前,删除问题是服务器上的一个肮脏,肮脏的黑客.它会阻塞JSON解析器.我用它来起飞,但我不再使用它了.但是,我仍然觉得最好的答案在于改变服务器格式化日期的方式,例如,如其他地方提到的ISO.


那不是合法的JSON.只有在使用Javascript解释器进行评估时才能使用它.但是如果你使用JSON解码器,它会窒息.

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



24> Thulasiram..:

在页面中添加jQuery UI插件:

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



25> 小智..:

下面是解析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;
}



26> martinoss..:

您还可以使用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');



27> Ray Linder..:

一篇文章很晚,但对于那些搜索过这篇帖子的人来说.

想象一下:

    [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的功能来创建"自动"泛型.它有点懒,但我喜欢它并且它有效.请注意:Profile是我为我的Web应用程序项目创建的自定义类.



28> Midhat..:

Mootools解决方案:

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

需要mootools-更多.在Firefox 3.6.3和IE 7.0.5730.13上使用mootools-1.2.3.1-more进行测试



29> 小智..:

仅供参考,对于在服务器端使用Python的任何人:datetime.datetime().ctime()返回一个可由"new Date()"本机解析的字符串.也就是说,如果您创建一个新的datetime.datetime实例(例如使用datetime.datetime.now),则该字符串可以包含在JSON字符串中,然后该字符串可以作为第一个参数传递给Date构造函数.我还没有发现任何例外情况,但我也没有严格测试过.



30> 小智..:

如果.NET返回怎么办...

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

然后在JavaScript中......

var x = new Date("2013-09-17 15:18:53Z");



31> Harun Diluka..:

在下面的代码中。我有

1.从日期字符串中检索时间戳。

2.并将其解析为Int

3.最后创建了一个Date使用它。

var dateString = "/Date(1224043200000)/";
var seconds = parseInt(dateString.replace(/\/Date\(([0-9]+)[^+]\//i, "$1"));
var date = new Date(seconds);
console.log(date);
推荐阅读
家具销售_903
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有