如何在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中将字符串解析为日期的主要内容,如果未能解决你的问题,请参考以下文章