首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在angularjs中输入日期的奇怪内容

在angularjs中输入日期的奇怪内容
EN

Stack Overflow用户
提问于 2016-03-14 11:50:53
回答 1查看 1.1K关注 0票数 0

当输入值更改时,当值为null或undefined.First时,我尝试将默认日期设置为日期输入中的最大日期,我今天选择的值为null或normal.Then,我清除了日期(单击“x”的叉子),将值再次作为值选择为默认值(‘1970-01-01’),在js代码中,检查值未定义,因此该值被设置为默认值(‘1970-01-01’).I.I想知道为什么今天不能选择作为值,发生了什么?我在chrome浏览器中进行了测试。

html代码:

代码语言:javascript
复制
<!doctype html>
<html ng-app="app">
<head>
<script src="angular/angular.min.js"></script>
</head>
<body>
      <div ng-controller="MainCtrl">
          <input type="date" max="{{today}}" ng-model="myDate.date" ng-change="change()">
      </div>
<script src="app.js"></script>
</body>
</html>

js代码:

代码语言:javascript
复制
var app = angular.module('app', []);

app.controller('MainCtrl', ['$scope', function ($scope) {
    $scope.myDate = {
    date:null
}
$scope.today = '2016-03-14';
$scope.change = function(){
    if(!$scope.myDate.date){
        $scope.myDate.date = new Date('1970-01-01');
    }
}
}]);

参考图片

http://plnkr.co/edit/UKtn8FbvsczbFtn44Vuq?p=preview

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-03-14 12:27:30

首先,我不建议使用Chrome内置的数据报警器,因为使用您的方法会使输入框在FF中完全不可用。

关于你的问题:

当我选择2016-03-14作为输入时,输出日期就是这样的:2016-03-13T23:00:00.000Z (偏移是由于我假设的时区造成的)。

现在,让我们通过按"x":1970-01-01T00:00:00.000Z来重置输入框。

如果我现在再次尝试选择2016-03-14,它将不能工作,它默认为1970-01-01,因为日期加上我的时区现在超过了max允许的输入值。

将时区添加到new Date('1970-01-01')应该可以解决这个问题(使用new Date('1970-01-01T23:00:00.000Z')可以为我工作,并允许我选择2016-03-14)。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35986778

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档