【问题标题】:C# DateTime to java Date & angular JSC# DateTime 到 java Date & angular JS
【发布时间】:2014-11-27 05:53:12
【问题描述】:

我有

public IEnumerable<object> GetStudentDate(string firstname)
{
    var query = from usr in context.Student
                where (usr.hasDateTime == true && (usr.LastName.Contains(lastname))
                select new
                {
                    CDate = usr.Date;
                    return query;
                }

我想将它与 AngularJs 一起使用

用户日期 {{user.CDate}}

但我只得到这样的东西: 用户日期/日期(1420875802707)/

我如何将这个 DateTime 解析为这个 Date 或他们在参考中所说的内容:(Angular Ref) {{1288323623006 |日期:'中'}}

当我使用 usr.Date.ToString() 格式化时,角度不起作用。

【问题讨论】:

  • 使用 Json.NET 而不是旧的序列化程序类。它们是在没有首选日期表示时创建的

标签: javascript c# angularjs date datetime


【解决方案1】:

您可以创建自己的过滤器来将 Microsoft JSON 日期转换为 js 日期,即:

var app = angular.module('app',[]);
app.filter('ctime', function(){
  
  return function(jsonDate){
    
    var date = new Date(parseInt(jsonDate.substr(6)));
    return date;
  };
  
});
app.controller('fCtrl', function($scope){
  
  $scope.date = '/Date(1420875802707)/';
  
});
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>

 <div ng-app="app">
    <div ng-controller="fCtrl">
     Raw Date : {{date}}
      <hr/>
     Custom Filter : {{date|ctime | date : 'medium'}}
      <hr/>
     Custom Filter + Angularjs Filter  :{{date|ctime | date : 'short'}}
    </div>
    </div>

【讨论】:

  • 不需要,只需使用 Json.NET 发送正确序列化的 Json。该库包含在所有开箱即用的 ASP.NET MVC 项目中,它已成为使用 Json 的推荐方式
【解决方案2】:

我怀疑您使用 JavaScriptSerializer 或 DataContractJsonSerializer 序列化程序将您的对象转换为 Json,从而以这种格式序列化日期。这些类的 JSon 功能有限,主要是为了支持早期的 AJAX 应用程序而创建的。如果您需要适当的 JSON 支持,则不应使用它们。

使用Json.NET 代替这些类,它支持ISO8601 格式并支持更多的JSon 功能。 Visual Studio 2012+ 中的项目模板默认包含 Json.NET。无需尝试使用任何外部库在客户端转换日期。

Json 本身并没有指定日期格式,因此早期尝试将数据从服务器序列化到客户端只是使用了看起来合适的格式。仍然没有标准表示,但 ECMA 标准将 ISO 格式定义为“首选表示”。

【讨论】:

    【解决方案3】:

    应使用可以处理 .net 日期格式的 MomentJS(请注意它的一种方式(.NET 到 Javascript)AFAIK)

    【讨论】:

      【解决方案4】:

      我这样做了: 在控制器中,我使用 for 循环跳过所有对象并使用 parseInt(obj.substr(6)),它现在工作得非常好:)

      【讨论】:

        猜你喜欢
        • 2011-12-30
        • 1970-01-01
        • 2011-10-19
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-24
        • 2015-10-03
        相关资源
        最近更新 更多