【问题标题】:angularjs getdate not workingangularjs getdate不工作
【发布时间】:2015-04-21 17:42:44
【问题描述】:

我对 javascript 和 angularjs 还很陌生,所以请多多包涵。尝试与 Date 对象交互时遇到问题。我假设 Date 是一个javascript对象。但是,在 Date 对象上运行 .getDate() 时,我得到的日期是 1970 年。

我的代码如下所示:

(function() {
  var app = angular.module("app", []);

  var DateController = function($scope) {
        $scope.today = new Date();
        $scope.tomorrow = $scope.today.getDay() +1;
  };

  app.controller("DateController", DateController);
}());

这真的很基本,但是我不明白为什么我会得到那个日期。 在使用其他一些默认的 javascript Date 函数时,我也会得到相同的行为。也将不胜感激。

为了方便起见,我创建了一个 plunk:Take me to the plunk!

【问题讨论】:

  • 您的两个答案向您展示了处理日期的正确方法。您得到的日期是 1970 年,因为 javascript 时间是从 UTC 时间 1970 年 1 月 1 日午夜开始以毫秒为单位测量的:developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/…。所以那个日期是 Javascript 的零日期。
  • 另外,如果你想获取整个日期,你需要使用getDate() 而不是getDay()
  • 是的,我的错,我会改变它。我最初的意思是 getDate(),但它会产生相同的结果。

标签: javascript angularjs date


【解决方案1】:

请查看plunker

你应该使用 setDate 来改变日期值

你的新控制器应该是这样的:

(function() {
  var app = angular.module("app", []);

  var DateController = function($scope) {
        $scope.today = new Date();
        $scope.tomorrow = new Date();
        $scope.tomorrow = $scope.tomorrow.setDate($scope.tomorrow.getDate() +1);
  };

  app.controller("DateController", DateController);
}());

【讨论】:

  • 谢谢!您的解决方案也可以正常工作,但必须像当初一样向 Adrian 提供支持。
  • @scripton 不是真的,如果您查看回答时间,您会看到我在 12 分钟前回答,他在 8 分钟前回答。不过没关系。
【解决方案2】:

在编辑您的 plunk 之后.. 更多关于 Date

(function() {
  var app = angular.module("app", []);

  var DateController = function($scope) {
    $scope.today = new Date();

    // elaborated code for illustration
    var nextDay = new Date($scope.today);
    nextDay.setDate($scope.today.getDate()+1);

    $scope.tomorrow = nextDay;
  };

  app.controller("DateController", DateController);
}());

希望这会有所帮助。

【讨论】:

  • 谢谢,这似乎工作得很好,真不敢相信我错过了!将标记为您是第一个和 + 用于对 Date 对象的引用。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-10-10
  • 2012-12-22
  • 2017-04-13
  • 2014-07-22
  • 2014-05-03
相关资源
最近更新 更多