2017-01-02 43 views
0

我需要将日期'02 -01-2017'转换为'2017-01-02'。如何在angularj中执行此操作。请帮助我。请提前致谢。如何在角度js中转换日期?

+1

的可能的复制[如何格式化angularjs日期](http://stackoverflow.com/questions/22392328/how-to- format date-in-angularjs) – Makoto

回答

0

这应该做的,

var date = "02-01-2017"; 
var newdate = date.split("-").reverse().join("-"); 
console.log(newdate); 

DEMO

var date = "02-01-2017"; 
 
var newdate = date.split("-").reverse().join("-"); 
 
console.log(newdate);

0

可以使用角度JS日期过滤器用于此目的。日期过滤器语法类似于

{{date |日期:格式:时区}}

其中format是您需要的格式,即yyyy-dd-MM和您喜欢的时区。您可以在 angular js website

找到这个here和文档的例子在Chrome中,你可以直接使用new Date('02-01-2017');但在Firefox那里,以便日期字符串必须写成new Date('02/01/2017');这将在Chrome支持也有一些兼容性问题。您的日期时间戳必须是“IETF兼容的RFC 2822时间戳”。你可以找到关于兼容性问题here.

细节

<!DOCTYPE html> 
 
<html> 
 
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.4.8/angular.min.js"></script> 
 

 
<body> 
 

 
    <div ng-app="myApp" ng-controller="datCtrl"> 
 

 
     <p>Date In Chrome {{ date | date:"yyyy-dd-MM" }}</p> 
 
     <p>Date In FireFox {{ dateFF | date:"yyyy-dd-MM" }}</p> 
 

 
    </div> 
 

 
    <script> 
 
     var app = angular.module('myApp', []); 
 
     app.controller('datCtrl', function ($scope) { 
 
      var dateTimeString = '02-01-2017'; 
 
      $scope.date = new Date(dateTimeString); 
 
      $scope.dateFF = new Date(dateTimeString.replace("-", "/")); 
 
     }); 
 
    </script> 
 

 
    <p>The date filter formats a date object to a readable format.</p> 
 

 
</body> 
 

 
</html>

+1

'new Date()'无效的日期字符串格式。尝试在Firefox中例如...返回'无效日期'。这个答案在浏览器中失败 – charlietfl

+0

@charlietfl在firefox中有一些兼容性问题,所以日期字符串需要写成新日期('02/01/2017');这也将支持铬。 – Nitheesh

+1

这不是一个Firefox问题,甚至是浏览器问题......这是使用无效字符串格式的规范问题。而且你必须解析字符串才能得到那个......你的编辑没有做的事情。你只是神奇地使它出现在控制器 – charlietfl