gpt4 book ai didi

javascript - AngularJS 两个日期之间的区别

转载 作者:行者123 更新时间:2023-11-29 10:10:37 32 4
gpt4 key购买 nike

我有一个应用程序(该应用程序是使用 springboot 构建的 API 和 AngularJs 构建的 View 。)获取事件开始和结束时间的报告,开始日期(2015-12-01T08:19:00.000Z)和enddate(2015-12-06T02:59:00.000Z) 作为示例。

我似乎没有找到将两个日期之间的差异设置为新值不可用的好方法。

这是我的 .js 文件:

        .controller(
'IncidenteController',
[
'$scope',
'$http',
'$routeParams',
'urlinc',
'$location',
function($scope, $http, $routeParams, urlinc, $location) {

var url = urlinc.getUrlinc();

var onError = function(reason) {
$scope.error = "No se pudo encontrar";
};

var code = $routeParams.codename;

console.log(code);

var onTecnicoComplete = function(response) {
$scope.tecnicos = response.data;
};

var onHardwareComplete = function(response) {
$scope.hardwares = response.data;
};

var onSoftwareComplete = function(response) {
$scope.softwares = response.data;
};

var onSistemaComplete = function(response) {
$scope.sistemas = response.data;
};

var onIncidenteComplete = function(response) {

try {
$scope.incidente = response.data;
} catch (error) {
console.error(error);
}
};

$http.get(url + code)
.then(onIncidenteComplete, onError);

$http.get("http://localhost:8080/tecnico/").then(
onTecnicoComplete);

$http.get("http://localhost:8080/hardware/").then(
onHardwareComplete);

$http.get("http://localhost:8080/software/").then(
onSoftwareComplete);

$http.get("http://localhost:8080/sistema/").then(
onSistemaComplete);

$scope.saveIncidente = function(incidente) {
console.log(incidente);

return $http.post(url, incidente).success(
function(data, status, headers, config) {
var status2 = '/' + status + '/';
$location.url(status2);
return status.data;
}).error(function(status) {
var status2 = '/' + status.status + '/';
console.log(status2);
$location.url(status2);
return status.data;
})
};

$scope.hardwares = [];

$scope.hardwareListener = function() {
console.log($scope.hardwares);
}

$scope.tecnicoListener = function() {
console.log($scope.incidente.tecnico);
}

$scope.date = new Date();

$scope.open = function($event) {
$event.preventDefault();
$event.stopPropagation();

$scope.opened = true;
};

var that = this;

this.dates = {
apertura: new Date(),
cierre: new Date(),
};

this.open = {
apertura: false,
cierre: false,
};

// Disable weekend selection
this.disabled = function(date, mode) {
return (mode === 'day' && (new Date().toDateString() == date.toDateString()));
};

this.dateOptions = {
showWeeks: false,
startingDay: 1
};

this.timeOptions = {
readonlyInput: false,
showMeridian: false
};

this.dateModeOptions = {
minMode: 'year',
maxMode: 'year'
};

this.openCalendar = function(e, date) {
that.open[date] = true;
};

// watch date1 and date2 to calculate difference
this.calculateWatch = $scope.$watch(function() {
return that.dates;
}, function() {
if (that.dates.apertura && that.dates.cierre) {
var diff = that.dates.apertura.getTime() - that.dates.cierre.getTime();
that.dayRange = Math.round(Math.abs(diff/(1000*60*60*24)))
} else {
that.dayRange = 'n/a';
}
}, true);

$scope.$on('$destroy', function() {
that.calculateWatch();
});

} ])

编辑:这就是我设法使其工作的方式:

      $scope.calcularIndisponibilidad = function(incidente){

var cierre = incidente.cierre;

var apertura = incidente.apertura;

var date1 = Date.parse(cierre);

var date2 = Date.parse(apertura);

var difference = date1 - date2;
console.log(difference);

var daysDifference = Math.floor(difference/1000/60/60/24);
difference -= daysDifference*1000*60*60*24

var hoursDifference = Math.floor(difference/1000/60/60);
difference -= hoursDifference*1000*60*60

var minutesDifference = Math.floor(difference/1000/60);
difference -= minutesDifference*1000*60

var indisponibilidad = 'difference = ' + daysDifference + ' day/s ' + hoursDifference + ' hour/s ' + minutesDifference + ' minute/s ';

console.log(indisponibilidad);

最佳答案

我推荐两种方式

<强>1。手动计算

Calculate difference between 2 timestamps using javascript 之前回答过

<强>2。使用 Moment.js

moment().format('MMMM Do YYYY, h:mm:ss a'); // December 15th 2015, 11:14:37 am

关于javascript - AngularJS 两个日期之间的区别,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34274571/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com