将日期格式添加到日期正则表达式中

时间:2017-11-16 05:55:24

标签: 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)

但我希望它像dd/MM/yyyy这样的标准格式,所以我编辑了我的过滤器代码:

app.filter('jsonDate', function () {
    return function (date) {
        return new Date(date.match(/\d+/)[0] * 1, 'dd MMMM @ HH:mm:ss');
    }
})

这是对的吗?

1 个答案:

答案 0 :(得分:1)

  

此过滤器返回此日期的日期    2017年5月18日星期四18:08:11 GMT + 0530(印度标准时间)

不,它不是,您的控制台(或其他)选择如何显示Date实例(通过Date.prototype.toString())。

我只是使用AngularJS' date过滤器〜https://docs.angularjs.org/api/ng/filter/date

例如(其中dateFormat是您的"/Date(1495111091673)/"格式化字符串)

{{dateFormat | jsonDate | date : 'shortDate'}}

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