3

我一直在尝试使用 Angular 的 ng-model 和 value 将日期设置为输入 type="date" ,但没有成功。我尝试使用有关输入日期的 Angular JS 文档,我得到的唯一一件事就是设置输入的年份,日期和月份仍然保留占位符值:“dd/mm/2014”。

我尝试了什么:

$scope.value = new Date(2013, 9, 22);

在我的 HTML 中:

<input type="date" id="exampleInput" name="input" ng-model="value" placeholder="yyyy-MM-dd" min="2013-01-01" max="2013-12-31" required />

我得到的是输入日期:“dd/mm/2013”

我尝试使用角度文档示例来确保我做对了,那是因为日期的最小值和最大值。

关于如何用今天的日期填写我的输入日期的任何想法?

提前致谢

4

4 回答 4

2
$scope.value = new Date().toISOString().split("T")[0]; // 2014-05-23

在铬中测试。

于 2014-05-23T16:33:31.677 回答
0

日期格式需要采用有效的ISO-8601 日期格式(yyyy-MM-dd)

// This won't work
new Date(2013, 9, 22); // Tue Oct 22 2013 00:00:00 GMT+1100 (EST)

尝试这个:

new Date().toISOString().split("T")[0]; // "2014-09-30"

注意:toISOString()将返回 UTC 时区。

请参阅:https ://docs.angularjs.org/api/ng/input/input%5Bdate%5D

于 2014-09-30T23:42:15.867 回答
0

上述答案至少在角度 1.4.7 中生成“错误:ngModel:datefmt 模型不是日期对象”。

稍作调整即可解决:

    $scope.value = new Date(new Date().toISOString().split("T")[0])
于 2017-03-09T18:46:40.880 回答
0

我正在做以下事情,日期开始以 mm/dd/yyyy 格式出现-

<input type="date" data-ng-model="value"  />

在控制器中也这样做:

$scope.value=new Date();
$scope.value =new Date($scope.value).toISOString().split("T")[0];
于 2017-11-27T05:41:35.160 回答