Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs 将日期格式添加到日期正则表达式中_Angularjs_Date - Fatal编程技术网

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')
}])