AngularJS日历选择所选日期前一天

时间:2016-04-28 07:47:54

标签: angularjs calendar

我是AngularJS的新手,在角度JS中使用日历时遇到了奇怪的问题。每当我选择日历中的任何日期时,它会在1天前显示。 例如。如果我选择:2016年3月2日{M / D / Y),则选择3/1/2016。

我尝试了多种解决方案: Why does angularjs bootstrap datepicker pick one day before?

Angular-UI One day is subtracted from date in ui-date

https://github.com/angular-ui/bootstrap/issues/2628

但以上都没有解决问题。有人有任何解决方案吗?

这是我的代码:

scpApp.controller('InitiativeDetailCtrl', function ($scope, $element, $initiatives, $stateParams, $timeout, $location) {

$scope.datepickerOptions = {
    format: 'yyyy-mm-dd',
    language: 'en',
    startDate: "2000-10-01",
    endDate: "2030-10-31",
    autoclose: true,
    weekStart: 1
}

<input type="text" ng-option="datepickerOptions" ng-datepicker ng-model="initiative.end_date">

如果我从输入控件中删除ng-option标签。它选择了正确的日期,但日期选择后日历不会关闭。

请不要标记为重复。我已经阅读了之前的所有问题,但他们无法解决问题。

3 个答案:

答案 0 :(得分:0)

尝试使用bootstrap datepicker

在index.html中包含这些链接

 <link href="http://eternicode.github.io/bootstrap-datepicker/bootstrap-datepicker/css/datepicker3.css" rel="stylesheet">
 <script src="http://eternicode.github.io/bootstrap-datepicker/bootstrap-datepicker/js/bootstrap-datepicker.js"></script>

HTML:

<input id="date-picker-1" type="text" class="date-picker form-control" name="dol" ng-model="emp.DOL" ng-init="emp.DOL = ''" placeholder="mm/dd/yyyy" />
<label for="date-picker-1" class="input-group-addon btn">
<span class="glyphicon glyphicon-calendar"></span>
</label>

控制器:

 $(".date-picker").datepicker();

答案 1 :(得分:0)

这是一个时区问题。没有时间的日期通常被假定为在一天开始时的午夜。如果然后将其转换为更晚的时区(例如UTC - > EST),则看起来就像前一天的晚上。

答案 2 :(得分:0)

我已经解决了不解决问题的价值:(控制器代码)

 $(".date-picker").datepicker({
        format: "mm-dd-yyyy",
        autoclose: "true"
    });
    $(".date-picker").on("change", function () {
        $scope.initiative.start_date = $(".date-picker").val();
        alert("selected date is " + $scope.initiative.start_date);

    });

更多信息:how to bind Bootstrap-datepicker element with angularjs ng-model?