Javascript AngularJS日期问题

Javascript AngularJS日期问题,javascript,angularjs,Javascript,Angularjs,我需要一个AngularJS日期选择器,它允许我执行以下操作:默认可用日期(最小和最大),默认为空,以便用户在需要时输入日期,并且用户能够从日历控件中选择日期或手动输入日期。我认为我几乎已经使用了下面的“假设开箱即用”组件,但是当你尝试手动输入日期时,你会得到一些奇怪的结果。当您手动输入日期时,它看起来像是使用US格式,但当您使用日历时,它是使用UK格式。如果您输入28-03-2017将其另存为2019-04-03T08:11:07.366Z,则某些内容显然不正确,如果可以,请提供帮助 代码笔:

我需要一个AngularJS日期选择器,它允许我执行以下操作:默认可用日期(最小和最大),默认为空,以便用户在需要时输入日期,并且用户能够从日历控件中选择日期或手动输入日期。我认为我几乎已经使用了下面的“假设开箱即用”组件,但是当你尝试手动输入日期时,你会得到一些奇怪的结果。当您手动输入日期时,它看起来像是使用US格式,但当您使用日历时,它是使用UK格式。如果您输入
28-03-2017
将其另存为
2019-04-03T08:11:07.366Z
,则某些内容显然不正确,如果可以,请提供帮助

代码笔:


通常,我使用datepicker表单引导ui:

    <div class="input-group">
        <input 
            type="text" 
            name="startDate" 
            id="legal-basis"
            class="form-control" 
            uib-datepicker-popup="{{vm.format}}" 
            ng-model="versionsVm.version.startDate" 
            is-open="vm.popup.opened" 
            datepicker-options="dateOptions" 
            close-text="Close" 
            alt-input-formats="vm.altInputFormats"
            required
            ng-disabled="versionsVm.version.status == 'VALIDATED'" 
        />
        <span class="input-group-btn">
            <button ng-if="versionsVm.version.status != 'VALIDATED'" type="button" class="btn btn-default" ng-click="vm.openDate()"><i class="glyphicon glyphicon-calendar"></i></button>
        </span>
    </div>
有关完整文档检查:

我一直推荐:它是用纯Angular.JS编写的(不需要jQuery),并利用Moment.JS处理所有很酷的事情,如内部化或日期/时间操作

在README.md文件中,它还提供了许多非常简单的示例,介绍了您需要的所有功能

以下是一个plunker示例:

angular
.module('演示',['时刻选择器])
.controller('DemoController',['$scope',函数(){
var ctrl=this;
//努普。
}]);

角力矩选择器
使用
DIV
元素 &时代; {{ctrl.div.stringDate | |'选择一个日期…'} 注意:由于这不是一个输入字段,用户无法键入 自定义文本。
使用
输入
元素 注:
ng型号
是输入所必需的, 即使你从不使用它。
 angular.module('MyApp',['ngMaterial', 'ngMessages', 'material.svgAssetsCache'])
 .config(function $mdDateLocaleProvider) {  $mdDateLocaleProvider.formatDate = function (date) {
    return !date ? '' : moment(date).format('DD-MM-YYYY');
};})
 .controller('AppCtrl', function() {  this.myDate = new Date();});
    <div class="input-group">
        <input 
            type="text" 
            name="startDate" 
            id="legal-basis"
            class="form-control" 
            uib-datepicker-popup="{{vm.format}}" 
            ng-model="versionsVm.version.startDate" 
            is-open="vm.popup.opened" 
            datepicker-options="dateOptions" 
            close-text="Close" 
            alt-input-formats="vm.altInputFormats"
            required
            ng-disabled="versionsVm.version.status == 'VALIDATED'" 
        />
        <span class="input-group-btn">
            <button ng-if="versionsVm.version.status != 'VALIDATED'" type="button" class="btn btn-default" ng-click="vm.openDate()"><i class="glyphicon glyphicon-calendar"></i></button>
        </span>
    </div>
function YourController() {

    var vm = this;

    vm.openDate = function() {
        vm.popup.opened = true;
    };

    vm.formats = ['dd/MM/yyyy', 'yyyy/MM/dd', 'dd.MM.yyyy', 'shortDate'];
    vm.format = vm.formats[0];
    vm.altInputFormats = ['M!/d!/yyyy'];

    vm.popup = {
        opened: false
    };

}