如何从AngularJS中的当前时间减去一些小时数

时间:2017-02-21 19:58:48

标签: javascript angularjs

我正在为我的应用程序使用AngularJS,日期对象是$ scope.ProductionDate。

从2017年2月21日上午5点到2月21日凌晨4点59分(2月22日)

我希望ProductionDate值为2017-02-21。

P.S。这里2月21日只是一个例子。每天我想在给定的时间内获得相同的价值。

我能知道怎么做吗?

function Ctrl($scope)
{
    $scope.ProductionDate = new Date();
}
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.2.23/angular.min.js"></script>
<div ng-app ng-controller="Ctrl">
    ProductionDate: {{ProductionDate | date:'yyyy-MM-dd'}}<br/> 
</div>

3 个答案:

答案 0 :(得分:5)

您可以从Date()对象中减去javascript中的分钟和小时。

function Ctrl($scope)
{
    var now = new Date();
    now.setHours(now.getHours()-4);
    now.setMinutes(now.getMinutes()-59);
    $scope.ProductionDate = now;
}

答案 1 :(得分:1)

您似乎想要减去5个小时,以便显示更早的日期。 这是一篇SO帖子,解释了如何修改def self.contact_search(search_string) self.where("firstname LIKE ?", search_string) end 对象:Adding hours to Javascript Date object?(没关注标题 - 您可以使用相同的原则来减去小时数。)

也可以通过设置所需的时区来完成相同的操作。

答案 2 :(得分:1)

只需检查日期时间是否在0到5之间

function Ctrl($scope)
{
    var now = new Date();
    if(now.getHours() < 5 && now.getHours() >= 0){
        // Subtract one day
        now.setDate(now.getDate() - 1);
    }
    $scope.ProductionDate = now;
}