c#JSON日期问题

时间:2014-03-03 16:50:32

标签: c# jquery json jquery-templates

我在2014-03-03 05:00:00的数据库中有一个日期,它以JSON格式呈现为:

enter image description here

日期是/ Date {( - 6xxxxx)/并且我调用此方法来解析它:

   function parseJsonDate(dateString) {
      var result = new Date(+dateString.replace(/\/Date\((-?\d+)\)\//gi, "$1"));
      var result = new Date(parseInt(dateString.replace('/Date(', '')));
      result.format("dd-MM-yyyy");
      return result;
   }

运行时,我会注释掉其中一个结果行,但两者都得到相同的结果:

enter image description here

正在从Jquery模板调用该方法,如:

<tr>
   <td>
    <span id="approvedDate"><i class="glyphicon glyphicon-time" data-toggle="tooltip" 
        data-original-title="approved date"></i> ${parseJsonDate(AuditDate)}</span>
   </td>
</tr>

修改

什么是布偶......我花了很长时间才想到这是一个JSON vconversion问题,我完全忘了回去查看我的短小精悍的代码。我的ApprovalHistory objec有AuditDate,但我在sql中要求EnteredDate。所以,它按预期进行。

aaaaaaaarrr: - )

2 个答案:

答案 0 :(得分:1)

我在那里看到了一些可疑的东西

var result = new Date(+dateString.replace(/\/Date\((-?\d+)\)\//gi, "$1"));
var result = new Date(parseInt(dateString.replace('/Date(', '')));
  1. 你是在同一个闭包中创建两个名为result的变量,是故意的吗?
  2. result.format做什么?因为结果是一个Date对象,所以我不认为它会将原始类型从Date更改为string。
  3. 也许

    var s = result.format("dd-MM-yyyy"); return s;

    你真的想做什么?

    你可以在ajax完成后执行此操作,这将为您节省大量麻烦,不得不一遍又一遍地解析日期(xxxxx)事件

    data = data.replace(/\"\\\/Date\((-?\d+)\)\\\/\"/g, '$1')
    

    这会将“Date(xxxx)”转换为xxxx然后你可以调用new Date(xxxx)来创建新的Date对象。

答案 1 :(得分:0)

也许你可以使用这样的东西:

var str = (result.getMonth() + 1) + "-" + result.getDate() + "-" + result.getFullYear();
return str;