Angular bootstrap日期选择器-如何显式设置日期

Angular bootstrap datepicker - how to set date explicitly?

本文关键字:日期 何显式 设置 选择器 bootstrap Angular      更新时间:2023-09-26

Angularjs Bootstrap日期选择器非常棒。但是当我尝试用javascript选择日期时,我遇到了一个问题。例如,如果从一个特定对象读取此数据,即1990年4月5日,我如何使日期选择器选择日期作为该日期:1990年5月4日?

提示:当我让用户可以编辑数据时,我需要这个。

看看我当前的代码:

HTML

<input type="text" class="form-control" ng-model="Birthdate" id="Birthdate" name="Birthdate" required autocomplete="on" datepicker-popup="dd/MM/yyyy" is-open="opened" max-date="'2015-06-22'" datepicker-options="dateOptions" date-disabled="disabled(date, mode)"
                               ng-required="true" close-text="Close" placeholder="Enter Birthdate"  />

js

$scope.Birthdate = $scope.users[id].Birthdate;

但所选日期出现在两种情况下:

第一种情况:如果日期是1986年4月5日,则交换日期格式的日期和月份。即:1990年4月5日---变为--->1990年5月4日

第二种情况:如果是此日期,则未选择日期:1986年5月28日

当我从对象中读取日期时,请帮助我在日期选择器中选择日期,如果它是4/5190,则日期选择器选择的日期应该与该日期完全一致。如果我有这个日期1986年5月28日,日期选择器应该坚持/正在选择那个日期。

请参阅此plnkrhttp://plnkr.co/edit/mDHliPweKoUNOAmVv5oo?p=preview

<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<pre>Raw date is: <em>{{dt}}</em></pre>
从服务器检索到的日期应该与日期选择器接受的原始日期具有相同的格式-您不能将已经格式化的日期作为模型传递-这就是的问题

问题1:如果从特定对象读取此数据,即1990年4月5日,我如何使日期选择器选择日期为该日期:1990年5月4日第一种情况:如果日期是1986年4月5日,则交换日期格式的日期和月份。即:1990年4月5日---变为--->1990年5月4日覆盖今日功能

$scope.today = function() {
$scope.dt = "4/5/1990"; };  $scope.today();

问题2:如果日期为1986年5月28日,则不选择日期答案:使用moment.js。这是因为使用字符串设置日期总是错误的。总是建议使用一些标准库。

$scope.today = function() {
$scope.dt = moment("28/5/1986", "DD-MM-YYYY").format();};  $scope.today();

Moment JS是一个很好的库,当你想格式化日期时可以使用。

示例:http://plnkr.co/edit/NWQutvl8vXY9YP2LoIZ8

日期选择器返回的日期为2015-06-03T15:5:51.211Z。但我将其截断为:2015-06-03并保存在数据库中。

现在问题来了,当我将2015-06-03绑定到datepicker时,它不接受它。它只接受这个:2015-06-03T15:2:51.211Z

这就是我发现的问题,我通过不截断日期来解决它,并将其存储为2015-06-03T15:25:51.211Z。日期选择器可以将其绑定以供用户编辑。

@AbuTaha:这个问题也可以通过使用矩js来解决。

$scope.today = function() {
$scope.dt = moment("2015-06-03T15:25:51.211Z", "YYYY-MM-DD").format();  };  $scope.today();