Angularjs 将日期格式添加到日期正则表达式中
我得到的日期格式如下Angularjs 将日期格式添加到日期正则表达式中,angularjs,date,Angularjs,Date,我得到的日期格式如下/date(1495111091673)/我创建了一个自定义过滤器来更改日期格式 app.filter('jsonDate', function () { return function (date) { return new Date(date.match(/\d+/)[0] * 1); } }) 此筛选器返回的日期如下所示 Thu May 18 2017 18:08:11 GMT+0530 (India Standard Time) 但
/date(1495111091673)/
我创建了一个自定义过滤器来更改日期格式
app.filter('jsonDate', function () {
return function (date) {
return new Date(date.match(/\d+/)[0] * 1);
}
})
此筛选器返回的日期如下所示
Thu May 18 2017 18:08:11 GMT+0530 (India Standard Time)
但我希望它是标准格式,如dd/MM/yyyy
,因此我对过滤代码进行了如下编辑:
app.filter('jsonDate', function () {
return function (date) {
return new Date(date.match(/\d+/)[0] * 1, 'dd MMMM @ HH:mm:ss');
}
})
对吗
此筛选器返回的日期如下所示2017年5月18日星期四18:08:11 GMT+0530(印度标准时间) 不,不是这样,这正是您的控制台(或其他什么)选择显示
Date
实例的方式(通过Date.prototype.toString()
)
我会使用AngularJS的date
filter~
例如(其中dateFormat
是您的“/Date(1495111091673)/”
格式化字符串)
或者用JS
let parsed = $filter('jsonDate')(dateFormat)
let dateString = $filter('date')(parsed, 'shortDate')
或者通过DI
.controller('controllerName', ['dateFilter', 'jsonDateFilter',
function(dateFilter, jsonDateFilter) {
let dateString = dateFilter(jsonDateFilter(dateFormat), 'shortDate')
}])
使用:
moment(date)。format('DD/MM/yyyyy')
您的答案是html格式的。但我正试图在controller中执行此操作。@krish然后使用我发送的文档中提到的JavaScript API,如下所示:$scope.filterStartDate=$filter('jsonDate')(/date(149511091673)/,'YYYY/MM/DD')代码>。而且它只返回这种格式2017年5月18日星期四18:08:11 GMT+0530(印度标准时间)
@krish yeah,因为这看起来完全像我在回答中得到的。您没有引用字符串,您的jsonDate
过滤器也不接受多个参数是的,正如我在回答中所说,请使用Angular的date
过滤器。您似乎还传递了一个正则表达式作为第一个参数,这是没有意义的
.controller('controllerName', ['dateFilter', 'jsonDateFilter',
function(dateFilter, jsonDateFilter) {
let dateString = dateFilter(jsonDateFilter(dateFormat), 'shortDate')
}])