【问题标题】:format json.net date using jQuery使用 jQuery 格式化 json.net 日期
【发布时间】:2013-01-18 00:05:01
【问题描述】:

我从 JSON.NET 获得了以下日期(使用 HTML 显示)。

<span class="date"> 2013-01-01T00:00:00  </span>
<span class="date"> 2009-05-01T00:00:00  </span>
<span class="date"> 2011-01-06T00:00:00  </span>
<span class="date"> 2012-03-09T00:00:00  </span>

如何将这些日期转换为“mm-dd-yyyy”格式。也就是说,HTML 应该是这样的:

<span class="date"> 01-01-2013  </span>
<span class="date"> 05-01-2009  </span>
<span class="date"> 01-06-2011  </span>
<span class="date"> 03-09-2012  </span>

我尝试了几种使用 jQuery DatePicker 和 DateFormat 的方法。我在SO 上也有类似的问题。但我仍然无法弄清楚这一点。任何帮助将不胜感激。

【问题讨论】:

    标签: jquery datepicker json.net


    【解决方案1】:

    jQuery UI datepicker.parseDate 无法解析时间,因此您必须删除它们:

    var input = "2013-01-01T00:00:00";
    input = input.split("T")[0]; // "2013-01-01"
    var date = $.datepicker.parseDate("yy-mm-dd", input); 
    

    那么使用formatDate应该没有问题:

    var newDateString = $.datepicker.formatDate("mm-dd-yy", date);
    

    获取跨度html:

    var spanHtml = "<span class='date'> " + newDateString + " </span>";
    

    【讨论】:

    • 使用 formatDate 后如何获得此输出&lt;span class="date"&gt; 01-01-2013 &lt;/span&gt;
    • @user1988856 更新了答案。
    【解决方案2】:
    $('span').text(function(i, v){
       var d = new Date($.trim(v));
       return (d.getMonth()+1) + '-' + d.getDate() + '-' + d.getFullYear();
    });
    

    http://jsfiddle.net/BdMfp/

    【讨论】:

    • 无法正确转换。例如。日期“2014-01-01T00:00:00”转换为 12-31-2013。
    • 我使用我的 ASP.NET 网站和您的 link 对其进行了测试。两个网站都显示较早的日期。我在 XP 上运行 Chrome。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-09-20
    • 2020-06-05
    • 1970-01-01
    相关资源
    最近更新 更多