无法应用日期过滤器内置的angular js
Not able to apply angular js built in filter for date
我的范围变量保存的日期格式如下:
$scope.thisDay="2016-01-01 00:00:01"
{{thisDay}} --->2016-01-01 00:00:01
我为上面的应用了一个日期过滤器,比如:
{{thisDay | date:'medium'}}
但这对我来说似乎不起作用。关于以上的任何建议。。。
Date
过滤器需要日期类型的数据,但您提供的是字符串而不是日期。
试试这个
$scope.thisDay=new Date("2016-01-01 00:00:01");
JSFIDDLE
如果你不想转换范围中的日期
然后创建一个过滤器,将您的字符串转换为日期对象
myApp.filter('convert2date', function() {
return function(input) {
return input ? new Date(input) : "";
};
});
将其添加到您的html
{{thisDay | convert2date |date:'medium'}}
JSFIDDLE
根据日期过滤器文档,date
参数应为:
要格式化为Date对象的日期,以毫秒(字符串或数字)为单位或各种ISO 8601日期时间字符串格式(例如。yyyy-MM-ddTHH:MM:ss.sssZ及其较短版本,如yyyy-MM-ddTHH:mmZ、yyyy-MM-d或yyyyMMddTHHmssz)。如果没有时区在字符串输入中指定,时间被认为在本地时区。
因此,您需要将字符串转换为有效的javascript日期,也许可以创建自己的过滤器,该过滤器依赖于angularjs内置的日期过滤器
angular.module('app').filter('customDateFormat', function($filter) {
return function(value) {
if (value == null) {
return "";
}
return $filter('date')(new Date(value).toISOString(), 'medium');
};
});
然后在你的html中,{{ thisDay | customDateFormat}}
更新:
此外,如果你想让你的过滤器更通用,并将日期格式与日期一起传递:
angular.module('app').filter('customDate', function($filter) {
return function(value, format, defaultValue) {
if (value == null) {
if (defaultValue) {
return defaultValue;
} else {
return "";
}
}
return $filter('date')(new Date(value).toISOString(), format);
};
});
然后在您的HTML:中
{{thisDay | customDateFormat:'shortTime'}}
相关文章:
- Angular JS IE9 Hashbang url rewriting
- 无法在数据endVal中设置值=“”;{{ucount}}”;使用Angular JS的CountUp
- angular.js没有'无法在PhoneGap中处理视图标记
- Angular js-返回一个包含类似
- 如何使用 Angular JS 将数据保存在数据库中
- 将Angular js与taglib结合使用
- Angular JS Filter-通过3个复选框进行筛选
- vaadin:使用自定义布局集成angular js
- angular js密码强度显示问题
- 使用angular.js问题的JavaSpringREST服务
- 将复杂对象从angular js传递到web api,它总是返回404
- entre上的angular js阻止提交
- 根据Angular.JS上一次的内容禁用选择
- 如何在angular js中使用指令.不适用于我的情况,为什么
- 预期响应包含一个对象,但在angular js中得到一个数组错误
- angular.js:13424错误:[ng:areq]参数'fn'不是函数,getObject
- 使用Angular js-量角器e2e测试上传文件
- Angular.js延迟控制器初始化
- 如何在angular.js中动态应用自定义过滤器
- 谷歌地图/Angular JS:地图更新并不总是反映数据,并且可以't删除标记