【问题标题】:angularJS set today to input dateangularJS 今天设置为输入日期
【发布时间】:2014-07-13 01:33:27
【问题描述】:

我一直在尝试使用 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”​​

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

知道如何用今天的日期填写我的输入日期吗?

提前致谢

【问题讨论】:

  • 是的,我使用了该帖子中的解决方案,效果很好。谢谢!
  • 请不要忘记标记对您有帮助的答案

标签: angularjs date input angular-ngmodel


【解决方案1】:

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

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

在控制器中也这样做:

$scope.value=new Date();
$scope.value =new Date($scope.value).toISOString().split("T")[0];

【讨论】:

    【解决方案2】:

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

    稍作调整即可解决:

        $scope.value = new Date(new Date().toISOString().split("T")[0])
    

    【讨论】:

      【解决方案3】:

      日期格式必须是有效的ISO-8601 date format (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

      【讨论】:

      • 如何获取印度时区日期
      【解决方案4】:
      $scope.value = new Date().toISOString().split("T")[0]; // 2014-05-23
      

      在 chrome 中测试。

      【讨论】:

        猜你喜欢
        • 2016-03-10
        • 2015-11-29
        • 2021-01-07
        • 1970-01-01
        • 1970-01-01
        • 2011-10-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多