3

我的 HTML 中有以下内容:

{{ row.createdDate }}

日期来自 JSON,如下所示:“createdDate=13-08-2013 03:02”

这将创建一个日期:“13-08-2013 03:27”

我将其更改为:

{{ row.createdDate | date:'MM/dd/yy HH:mm' }}

它仍然创建相同的日期:“13-08-2013 03:27”

日期过滤器似乎没有为我做任何事情。问题是日期过滤器要求日期采用特定格式吗?如果是,我的日期应该采用什么格式。这是我目前与 MS Web API 一起使用的格式:

json.SerializerSettings.Converters.Add( 
    new IsoDateTimeConverter { DateTimeFormat = "dd-MM-yyyy hh:mm" });
4

2 回答 2

3

这可能与row.createdDate. 我认为您需要使用date类型变量表达式,如:

首先,在控制器中,您可以再添加一个函数来从字符串类型变量中获取日期类型变量,如

$scope.GetCreateDate = function () {
            return new Date(row.createdDate);
        };

然后在绑定表达式中使用该日期类型变量,如下所示:

{{ row.GetCreateDate | date:'MM/dd/yy HH:mm' }}
于 2013-08-13T08:01:09.693 回答
2

我将 Sanjeev 的答案与Convert a mySQL date to Javascript date结合起来,并制作了一个更通用的版本。

把它放在你的控制器中:

  $scope.toJsDate = function(str){
    if(!str)return null;
    var t = str.split(/[- :]/);
    var d = new Date(t[0], t[1]-1, t[2], t[3], t[4], t[5]);
    return d;
  }

并将其放入您的 HTML 中:

{{toJsDate('2013-09-19 02:23:51') | date:'MM/dd/yyyy @ h:mma'}}

另一种选择是使用过滤器,如:AngularJS:如何格式化 ISO8601 日期格式?

于 2013-10-03T06:58:32.817 回答