我正在为我的应用程序使用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>
答案 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;
}