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