day*_*mer 16 angularjs angularjs-scope
我正在使用bootstrap-datetimepicker并使用ISO8601 datetime格式,yyyy-mm-ddThh:ii:ssZ如其选项部分所述
在我的控制器中,我做到了
transaction.date = $('.form_datetime input').val();
Run Code Online (Sandbox Code Playgroud)
它将数据发送到后端(console.log)
created_on: "Wed, 08 May 2013 23:18:32 -0000"
Run Code Online (Sandbox Code Playgroud)
并保存在数据库中
2013-05-08 16:18:32-07
Run Code Online (Sandbox Code Playgroud)
在我的模板中,我做到了
<td>{{ transaction.created_on | date:'medium'}}</td>
Run Code Online (Sandbox Code Playgroud)
我看到HTML上的输出为
Wed, 08 May 2013 23:18:32 -0000
Run Code Online (Sandbox Code Playgroud)
但根据Angular doc,它应该是格式化的Oct 28, 2010 8:40:23 PM
我错过了什么?
Rob*_*bbo 45
我不明白为什么没有人提供在过滤器中使用正确格式的简单答案?
{{item.date | date:'yyyy-MM-ddTHH:mm:ssZ'}}
Run Code Online (Sandbox Code Playgroud)
格式为ISO-8601
day*_*mer 12
现在,我已经创建了一个过滤器
angular.module('customFilters', []).
filter('dateInMillis', function() {
return function(dateString) {
return Date.parse(dateString);
};
});
Run Code Online (Sandbox Code Playgroud)
作为依赖添加app.js为
var app = angular.module('myApp', [
'$strap.directives', 'ngCookies', 'categoryServices', 'transactionServices',
'customFilters'
]);
Run Code Online (Sandbox Code Playgroud)
并HTML用它作为
<!-- added dateInMillis to pass to date to filter Angular way -->
<td>{{ transaction.created_on | dateInMillis | date: 'medium'}}</td>
Run Code Online (Sandbox Code Playgroud)
并且提供日期HTML为
May 8, 2013 5:14:36 PM
Run Code Online (Sandbox Code Playgroud)
如果您知道更好的主意,请告诉我
在巴西(以及欧洲大部分地区,澳大利亚等),我们使用DB上的默认MySQL DATETIME:
"Y-m-d HH:ii:ss"
Run Code Online (Sandbox Code Playgroud)
但是使用date()来显示它:
"d/m/Y HH:ii:ss"
Run Code Online (Sandbox Code Playgroud)
因此,为了以角度"正确"显示该日期,请创建一个过滤器:
var app = angular.module(...
// Converts MySQL datetime into readable BR format
/*
Converts 2013-10-18 18:47:15 into 1382122035000 so angular can format date
using brazilian standards
*/
app.filter('brDateFilter', function() {
return function(dateSTR) {
var o = dateSTR.replace(/-/g, "/"); // Replaces hyphens with slashes
return Date.parse(o + " -0000"); // No TZ subtraction on this sample
}
});
Run Code Online (Sandbox Code Playgroud)
然后,在您的角度应用程序上,只需调用过滤器并格式化显示值:
{{ item.datetime_value | brDateFilter | date:"dd/MM/yyyy HH:mm" }}
Run Code Online (Sandbox Code Playgroud)
这包括巴西,英国,新西兰等日期格式的角度日期格式,只需正确减去时区.
| 归档时间: |
|
| 查看次数: |
24794 次 |
| 最近记录: |