Angular bootstrap datepicker - 如何明确设置日期?

时间:2015-06-28 13:40:09

标签: javascript angularjs twitter-bootstrap datepicker bootstrap-datepicker

Angularjs Bootstrap datepicker令人惊叹。但是当我尝试通过javascript选择日期时,我遇到了问题。例如,如果从特定对象4/5/1990读取此数据,如何将日期选择器选择日期作为该日期:4/5/1990?

提示:当我将数据提供给用户进行编辑时,我需要这个。

看看我目前的代码:

HTML

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

JS

TelephonyManager tMgr = (TelephonyManager)mAppContext.getSystemService(Context.TELEPHONY_SERVICE);
String mPhoneNumber = tMgr.getLine1Number();

但所选日期有两种情况:

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

第二种情况:在此日期的情况下没有选择日期:28/5/1986

当我从对象中读取日期选择器时,请帮我选择日期选择器中的日期,如果它是4/51990,则日期选择器选择日期应该是那个没有混乱的日期。如果我的日期是28/5/1986,那么datepicker应该坚持/选择那个日期。

4 个答案:

答案 0 :(得分:1)

看到这个plnkr http://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 :(得分:1)

问题1 :如果从特定对象4/5/1990读取此数据,如何将日期选择器选择日期作为该日期:4/5/1990 第一种情况:如果日期是4/5/1986,它会交换日期格式的日期和月份。即:4/5/1990 ---变成---&gt; 1990年5月4日 覆盖今天的功能

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

问题2 :如果是这个日期,则不会选择日期:28/5/1986 回答:使用moment.js。这是因为使用字符串来设置日期总是错误的。它总是建议使用一些标准的lib。

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

当您想要格式化日期时,Moment JS是一个很棒的库。

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

答案 2 :(得分:0)

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

现在出现问题,当我将2015-06-03绑定到datepicker时,它不接受它。它仅接受此:2015-06-03T15:25:51.211Z

这是我发现的问题,我通过不截断日期并将其存储为2015-06-03T15:25:51.211Z解决了这个问题。 datepicker能够将其绑定以供用户编辑。

答案 3 :(得分:0)

@AbuTaha:使用时刻js也可以解决这个问题。

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