2015-07-01 32 views
-1

現在即時從本地主機獲取此格式:1990-01-01T16:00:00.000Z。是否有格式或我可以將日期設置爲此格式的方式:mm/dd/yyyy

我只是想我的格式爲01/01/1990,並能夠將其設置爲我的形式。

我的JS是...

var vm; 
    vm = this; 
    vm.data = {}; 
    vm.data.dob = memberData.dob; 

和我的HTML表單...

div class="item item-icon-left"><i class="icon ion-calendar assertive"></i><span class="label">Birthday</span><span class="item-note"> 
       <input type="date" name="dob" placeholder="Birthday" ng-model="profile.data.dob" required="required" style="background-color:transparent; padding-right:-100px; margin-top: 10px;" /> 
+0

date.toLocaleString( 'EN-US')SUBSTR(0,10) – Vladimir

+0

注:的toLocaleString完全不 –

+0

做什麼用IE <11或Safari工作你意思是?像vm.data.dob.date.toLocaleString('en-US')。substr(0,10)?即時通訊有點新的js ... – Pickles

回答

0

你可以只使用內置的date filter這一點,如果你格式化字符串爲文本輸入。

但是,您需要記住輸入是AngularJS中的一個指令,日期類型輸入需要該模型的日期對象。如果你傳遞一個字符串,它們將不起作用。從doc

模型必須始終爲Date對象,否則角將拋出 錯誤。無效的日期對象(getTime()爲NaN的日期)將爲 呈現爲空字符串。

var app = angular.module('test', []); 
 
app.controller('testCtrl', function($filter) { 
 

 
    var date = '1990-01-01T16:00:00.000Z'; 
 
    this.dt = $filter('date')(date, 'MM/dd/yyyy'); 
 
    this.dt2 = new Date(date); 
 

 

 
});
<script src="https://code.angularjs.org/1.3.15/angular.js"></script> 
 

 
<div ng-app="test"> 
 
    <div ng-controller="testCtrl as vm"> 
 
    <label>Text Input: <input type="text" ng-model="vm.dt" /></label> 
 
    <label>Date Input: <input type="date" ng-model="vm.dt2" /></label> 
 
    </div> 
 
</div>

+0

這個工作在Input type = date上嗎? – Pickles

+0

您可以使用過濾器以任何您想要的方式設置日期的格式。我最初使用'shortDate'選項只是因爲它自動國際化。所以現在我改變它的格式爲mm/dd/yyyy。但是,我認爲你沒有意識到**你不能將一個字符串傳遞給日期輸入**。它期望一個日期對象。因此,你所要做的就是從你的後端取出你的ISO格式的日期,並從它創建一個新的日期對象:'new Date('1990-01-01T16:00:00.000Z');'。查看更新的示例。 – jme11

+0

我似乎得到這個錯誤「未知的提供者:dobFilterProvider < - dobFilter」。我在我的控制器和angularjs中包含了$ filter。 – Pickles

相關問題