2017-02-21 7 views
1

Я использую AngularJS для своего приложения, а объект даты - $ scope.ProductionDate.Как вычесть некоторые часы из текущего времени в AngularJS

С 5:00 утра 2017-02-21 (Feb 21) к 4:59 2017-02-22 (февраль 22)

Я хочу, чтобы значение ProductionDate быть 2017-02-21.

P.S. Здесь 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

Что вы хотите, чтобы произошло с датой производства? –

+0

Я имею в виду сегодня утром 5:00 утра tommorow morning 4:59 AM Я хочу, чтобы дата была сегодняшней датой – Ranger

+0

Moment.js (https://momentjs.com/) стоит посмотреть здесь. Там мой JS или даже Angular способы сделать это, но ничего не так просто, как использовать moment.js, когда дело доходит до вычислений и форматирования дат, особенно если у вас есть другие потребности для этого в вашем проекте. –

ответ

3

Вы можете вычесть минуты и часы в JavaScript из объекта Date().

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

Я не прошу об этом. с сегодняшнего утра с 5:00 утра до завтра утром 4:59 утра Я хочу, чтобы дата была сегодняшней датой – Ranger

+0

@Ranger Я обновил ваш комментарий. Возможно, вам придется отбросить минутную линию и просто вычесть 5 часов. вы можете проверить, какие работы и сообщить мне. Я не где-то, где я могу проверить это, чтобы подтвердить. – Stephan

1

Кажется, что вы хотите вычесть 5 часов, чтобы была показана более ранняя дата. Вот сообщение SO, в котором объясняется, как изменить объект Date: Adding hours to Javascript Date object? (без названия - вы можете использовать те же принципы, что и вычесть часы).

Эта же операция также может быть выполнена путем установки желаемого часового пояса.

+0

Указание часового пояса особенно проницательно. Для других читателей Deividas полагает, что причиной нечетных часов является то, что приложение предназначено для пользователей в другом регионе, чем сервер. – Stephan

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; 
} 
Смежные вопросы