格式日期时间AngularJS(Format Date time in AngularJS)

2019-06-18 13:29发布

如何正确地显示在AngularJS的日期和时间?

下面的输出显示的输入和输出端,有和没有AngularJS日期滤波器:

In: {{v.Dt}}  
AngularJS: {{v.Dt | date:'yyyy-MM-dd HH:mm:ss Z'}}

这将打印:

In: 2012-10-16T17:57:28.556094Z 
AngularJS: 2012-10-16T17:57:28.556094Z

所希望的显示格式是2010-10-28 23:40:23 04002010-10-28 23:40:23 EST

Answer 1:

v.Dt可能不是一个Date()对象。

见http://jsfiddle.net/southerd/xG2t8/

但在你的控制器:

scope.v.Dt = Date.parse(scope.v.Dt);


Answer 2:

你的代码应工作,你拥有它看到这个小提琴 。

你必须确保你的v.Dt是一个适当的日期对象为它的工作,虽然。

{{dt | date:'yyyy-MM-dd HH:mm:ss Z'}}

或者,如果日期格式为在范围为DATEFORMAT = 'YYYY-MM-DD HH:MM:SS Z' 定义为:

{{dt | date:dateFormat }}


Answer 3:

我知道这是一个老项目,但认为我会在另一个值得考虑的选择抛出。

由于原来的字符串不包括“T” DEM指标,在折角的默认实现不承认它作为一个日期。 你可以强制使用新的日期,但就是有点阵列中的痛苦。 既然你可以管道过滤器放在一起,你也许可以使用过滤器来你的输入转换为日期,然后申请日期:过滤器所转换的日期。 创建新的自定义过滤器如下:

app
.filter("asDate", function () {
    return function (input) {
        return new Date(input);
    }
});

然后在你的标记,可以通过管道过滤器一起:

{{item.myDateTimeString | asDate | date:'shortDate'}}


Answer 4:

你可以得到这样的“日期”过滤器:

var today = $filter('date')(new Date(),'yyyy-MM-dd HH:mm:ss Z');

这会给你今天的你想要的格式的日期。



Answer 5:

这里是一个过滤器 ,将采取一个日期字符串或JavaScript日期()对象。 它采用Moment.js并且可以应用任何Moment.js变换函数,如流行的“fromNow”

angular.module('myModule').filter('moment', function () {
  return function (input, momentFn /*, param1, param2, ...param n */) {
    var args = Array.prototype.slice.call(arguments, 2),
        momentObj = moment(input);
    return momentObj[momentFn].apply(momentObj, args);
  };
});

所以...

{{ anyDateObjectOrString | moment: 'format': 'MMM DD, YYYY' }}

将显示二○一四年十一月十一日

{{ anyDateObjectOrString | moment: 'fromNow' }}

将显示11分钟前

如果您需要调用多个时刻的功能,你可以把它们连。 这转换为UTC,然后格式...

{{ someDate | moment: 'utc' | moment: 'format': 'MMM DD, YYYY' }}

https://gist.github.com/cmmartin/341b017194bac09ffa1a



Answer 6:

下面是一些最典型的例子:

<div>{{myDate | date:'M/d/yyyy'}}</div> <div>{{myDate | date:'M/d/yyyy'}}</div> 2014年7月4日

<div>{{myDate | date:'yyyy-MM-dd'}}</div> <div>{{myDate | date:'yyyy-MM-dd'}}</div> 2014年7月4日

<div>{{myDate | date:'M/d/yyyy HH:mm:ss'}}</div> <div>{{myDate | date:'M/d/yyyy HH:mm:ss'}}</div> 2014年7月4日12点01分59秒



Answer 7:

你见过的写作指令(短版)部分的文档 ?

HTML

<div ng-controller="Ctrl2">
      Date format: <input ng-model="format"> <hr/>
      Current time is: <span my-current-time="format"></span>
</div> 

JS

function Ctrl2($scope) {
  $scope.format = 'M/d/yy h:mm:ss a';
}


Answer 8:

内部控制器格式可通过注入$过滤器进行过滤。

var date = $filter('date')(new Date(),'MMM dd, yyyy');


Answer 9:

Simplly如果要像输出“二○一七年一月三十〇日下午四点31分二十秒”然后按照简单的步骤,

step1-声明在JS控制器以下变量

$scope.current_time = new Date();

在HTML页面一样step2-显示

日期: '中'}}



Answer 10:

我们可以格式化的角度很容易对视点侧的日期....请检查下面的例子:

日期: “DD-MM-YYYY”}}



Answer 11:

您可以使用momentjs来实现angularjs日期,时间过滤器。 例如:

angular.module('myApp')
 .filter('formatDateTime', function ($filter) {
    return function (date, format) {
        if (date) {
            return moment(Number(date)).format(format || "DD/MM/YYYY h:mm A");
        }
        else
            return "";
    };
});

当日期为时间戳格式。



Answer 12:

添加$filter在控制器的依赖。

var formatted_datetime = $filter('date')(variable_Containing_time,'yyyy-MM-dd HH:mm:ss Z')


Answer 13:

我建议你使用moment.js它已得到了日根据区域设置格式化了良好的支持。

创建内部使用moment.js方法用于格式化日期的过滤器。



文章来源: Format Date time in AngularJS