2015-07-01 3 views
-1

Прямо сейчас я получаю этот формат с моего localhost: 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') подстрока (0, 10) – Vladimir

+0

ПРИМЕЧАНИЕ. ToLocaleString не работает с IE <11 или Safari на всех –

+0

, что делать ты имеешь в виду? например, vm.data.dob.date.toLocaleString ('en-US'). substr (0, 10)? im kinda new in 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

Будет ли это работать на тип ввода = дата? – Pickles

+0

Вы можете использовать фильтры для форматирования ваших дат любым способом, который вы хотите. Первоначально я использовал параметр «shortdate» только потому, что он интернационализирован автоматически. Теперь я изменил его, чтобы отформатировать его как mm/dd/yyyy. Однако, я думаю, вы не понимаете, что ** вы не можете передать строку на вход даты **. Он ожидает объект даты. Таким образом, все, что вам нужно сделать, - это взять дату, отформатированную в формате ISO, из вашего бэкэнд и создать из нее новый объект даты: 'new Date ('1990-01-01T16: 00: 00.000Z');'. См. Обновленный пример. – jme11

+0

Кажется, я получаю эту ошибку «Неизвестный поставщик: dobFilterProvider <- dobFilter». Я включил фильтр $ в моем контроллере и angularjs. – Pickles

Смежные вопросы