Sunil bamal Ответов: 2

Получить дату в формате ММ/ДД/гггг с ng-моделью на форме редактирования


При редактировании угловой формы я получаю дату в другом формате, чем "ММ/ДД/гггг". Ниже приведены вид и угловой контроллер. Дата идет вместе с часовым поясом.

Смотреть:-
<input id="dob" type="text" class="form-control myCalendar" ng-model="employeeDOB" data-modal="modal" ng-required="true" datepicker filter="date" />


Угловой Модуль:
var app = angular.module("myApp", ['angularUtils.directives.dirPagination']);    
    app.directive('datepicker', function () {
        return {
            require: 'ngModel',
            link: function (scope, element, attrs, ngModelCtrl) {         
                element.datetimepicker({               
                    mask: true,              
                    timepicker: false,
                    format: 'm/d/Y',             
                    onSelect: function (dateText, inst) {
                        ngModelCtrl.$setViewValue(dateText);
                        scope.$apply();
                    }
                    }).on('blur', function () {    
                    $(this).valida();                
                });
            }
        }
    });


Что я уже пробовал:

$scope.employeeDOB = новая дата (employee. DOB);
$область действия.employeeDOB = новая дата(Эми.данных.Доб.матч (/и\d+/)[0] * 1);

2 Ответов

Рейтинг:
14

Karthik_Mahalingam

попробовать это

var d =new Date(employee.DOB);
       var datestring =("0"+(d.getMonth()+1)).slice(-2) +"/" +  ("0" + d.getDate()).slice(-2) + "/" +   + d.getFullYear();
       $scope.employeeDOB = datestring;


Sunil bamal

С тех пор как я изменил свой угловой файл на более новую версию и после использования input=date теперь m получает значение в yyyy-mm-dd. Так что, возможно, теперь ваше решение нужно немного изменить.

Karthik_Mahalingam

var d =новая дата (employee. DOB);
ВАР как datestring =д.getFullYear() + "-" + ("0"+(д. getMonth()+1)).нарезать(-2) +"-" + ("0" + д. getdate ()) для.срез(-2) ;
$область действия.employeeDOB = дату;

Sunil bamal

теперь после изменения обратно на input= "text" работает.., спасибо @Karthik

Karthik_Mahalingam

добро пожаловать :)

Sunil bamal

@Karthik, я должен очистить кэш вручную в каждом браузере, чтобы получить отражение изменений в угловом файле, есть ли какие-либо идеи, почему это происходит, и есть ли какое-либо решение, чтобы получить отражение в браузере без очистки cahe вручную??

Karthik_Mahalingam

Привет Сунил
Пожалуйста, напишите новый вопрос об этом с дополнительной информацией, если кто-то знает об этом, вы можете получить лучшее решение.
почему вы хотите очистить кэш ?
не делайте никаких изменений в angular.js файл, то у вас приложение будет работать в соответствующем режиме.

Sunil bamal

Я не меняюсь angular.js и говоря о других файлах angular helping, таких как service или любые файлы angular controller

Karthik_Mahalingam

ОК. найдите "управление версиями js-файлов на хостинге/развертывании" вот так
если бы еще не добрался! поставьте новый вопрос, я отвечу.

Sunil bamal

ладно

Рейтинг:
1

Member 12597746

1. Можете ли вы попробовать "ММ/ДД/гггг" для этого формата вместо использования "м/д/у"?
2. Если это не работает, что вы хотите сделать с employeeDOB, просто отображая его на странице или храня в БД? Если только для отображения, вы можете попробовать {{employeeDOB | дата:'ММ/ДД/гггг'}}.


Sunil bamal

нет, я не могу изменить m/d/Y на MM/dd / yyyy, он изменит дату в каком-то другом формате, который является недопустимым форматом даты. И я пытаюсь использовать ng-модель во входных данных, поэтому я не могу использовать {{employeeDOB | date: 'MM/dd/yyyy'}} .