angular 中的 moment.js 格式不符合我的预期
moment.js in angular is not formatting as I would expect
我从服务器中提取了以下 JSON 格式的时间:
"begins_at":"2016-04-22T08:11:07.000Z"
我正在使用带 angular 的 momentjs 和以下过滤器:
{{event_details.begins_at | moment: "format": "HH:MM a"}}
我希望得到以下输出:08:11 am
。相反,我得到:04:04 am
。我怀疑这可能与时区有关,但我不确定。我该如何解决这个问题?
将 MM 更改为 mm(月到分钟 : ))
angular.module('app', [])
.provider('moment', function() { // be nice for DI
this.$get = function() {
return moment
}
})
.controller('ctrl', function() {
this.event_details = {
begins_at: '2016-04-22T08:11:07.000Z'
}
})
.filter('moment', function(moment) {
return function(input, options) {
return moment(input).format(options.split('\'')[1]) // ugly formatter ; (
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='app'>
<div ng-controller='ctrl as c'>
moment: {{ c.event_details.begins_at | moment:"format: 'HH:mm a'" }}
</div>
</div>
另一种选择。 JS 日期是一个 ISO 日期,所以我们只需要使用 moments 转换方法来使用 JS 原生日期格式。这不需要您创建自定义格式化程序。
{{myMomentDate.toISOString() | date: <your angular filter>}}
我从服务器中提取了以下 JSON 格式的时间:
"begins_at":"2016-04-22T08:11:07.000Z"
我正在使用带 angular 的 momentjs 和以下过滤器:
{{event_details.begins_at | moment: "format": "HH:MM a"}}
我希望得到以下输出:08:11 am
。相反,我得到:04:04 am
。我怀疑这可能与时区有关,但我不确定。我该如何解决这个问题?
将 MM 更改为 mm(月到分钟 : ))
angular.module('app', [])
.provider('moment', function() { // be nice for DI
this.$get = function() {
return moment
}
})
.controller('ctrl', function() {
this.event_details = {
begins_at: '2016-04-22T08:11:07.000Z'
}
})
.filter('moment', function(moment) {
return function(input, options) {
return moment(input).format(options.split('\'')[1]) // ugly formatter ; (
}
})
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app='app'>
<div ng-controller='ctrl as c'>
moment: {{ c.event_details.begins_at | moment:"format: 'HH:mm a'" }}
</div>
</div>
另一种选择。 JS 日期是一个 ISO 日期,所以我们只需要使用 moments 转换方法来使用 JS 原生日期格式。这不需要您创建自定义格式化程序。
{{myMomentDate.toISOString() | date: <your angular filter>}}