如何在angularjs中将字符串解析为Date

时间:2017-09-18 12:44:01

标签: javascript jquery css angularjs wordpress

我有来自服务器的数据要显示。我收到了这样的字符串:2016-05-01。我需要以该格式过滤两个日期之间的数据。我有一个函数来解析日期:

$scope.parseDate = function (date) {
  return new Date(Date.parse(date));
} 

在我的html中,我用这个显示日期:

{{ parseDate(item.startDate) }}`

但在浏览器中,结果为:"2016-07-12T00:00:00.000Z"

  1. 我需要将字符串解析为与服务器相同的格式:2016-05-01。

  2. 我需要一个简单的过滤功能。

  3. 我不想使用moment.js。我的后端平台是JavaScript。

5 个答案:

答案 0 :(得分:2)

在你的html中试试这个:

{{item.startDate | date: 'MMM dd, yyyy'}}

答案 1 :(得分:0)

这样的东西
function(date) {
   var d = new Date(Date.parse(date));
   return d.getDate() + " " + d.getMonth() + " " + d.getFullYear();
}

显然,这取决于您希望输出的日期格式。

请记住,函数不是以角度格式化日期的最佳方法,因为它会连续执行并导致性能问题。您应该使用像这样的过滤器

app.filter('mydate', function () {
    return function (input) {
        if (input) {

        var d = new Date(input);
        return d.getDate() + " " + d.getMonth() + " " + d.getFullYear();

    }
};
});

答案 2 :(得分:0)

在您的HTML文件中,尝试使用

{{ parseDate(item.startDate) | date:'yyyy-MM-dd'}}

答案 3 :(得分:0)

您可以使用Angular提供的内置date过滤器。

像这样;

{{ date_variable | date:'dd-mm-yyyy' }}

答案 4 :(得分:0)

您可以像下面一样使用AngularJS过滤器 -

$scope.parseDate = function (date) {
    $filter('date')(new Date(Date.parse(date)), 'yyyy-MM-dd');
}