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

Posted

技术标签:

【中文标题】如何在angularjs中将字符串解析为日期【英文标题】:How to Parse string into Date in angularjs 【发布时间】:2018-02-27 00:13:03 【问题描述】:

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

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

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

 parseDate(item.startDate) `

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

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

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

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

【问题讨论】:

Javascript change date into format of (dd/mm/yyyy)的可能重复 如果您想显示来自服务器的确切信息。然后按原样显示。我无法理解您要做什么。 你想输出什么格式? 【参考方案1】:

你可以像下面这样使用 AngularJS 过滤器-

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

【讨论】:

【参考方案2】:

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

类似的东西;

 date_variable | date:'dd-mm-yyyy' 

【讨论】:

【参考方案3】:

在你的 html 中试试这个:

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

【讨论】:

【参考方案4】:

在您的 HTML 文件中尝试使用

 parseDate(item.startDate) |日期:'yyyy-MM-dd'

【讨论】:

你也可以在 javascript 中使用相同的过滤器,如果这样更容易看到:docs.angularjs.org/api/ng/filter/date【参考方案5】:

类似

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();

    
;
);

【讨论】:

以上是关于如何在angularjs中将字符串解析为日期的主要内容,如果未能解决你的问题,请参考以下文章

如何在 xslt 2.0 中将字符串解析为日期

如何在Python中将字符串解析为日期时间

在angularJS输入中将最小日期设置为当前日期

在 JavaScript 中将字符串解析为日期

在AngularJS指令中将字符串转换为日期

如何在 C# 中将日期字符串转换为 DateTime 对象? [复制]