如何从angularjs获得天数
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从angularjs获得天数相关的知识,希望对你有一定的参考价值。
如何获得两个日期之间的天数,但它不起作用我认为我的日期格式不正确但如何更改日期格式和获取天数
$scope.ChangeDate = function () {
var oneDay = 24 * 60 * 60 * 1000;
var firstDate = $scope.Current.PlainnedStart;
var secondDate = $scope.Current.PlainnedEnd;
if (!angular.isUndefined(firstDate) && !angular.isUndefined(secondDate)) {
var diffDays = Math.round(Math.abs((firstDate.getTime() - secondDate.getTime()) / (oneDay)));
alert(diffDays);
$scope.Current.NOD = ++diffDays;
}
}
<input type="text" onchange="angular.element(this).scope().ChangeDate()"
id="date" ng-model="Current.PlainnedStart"
class="floating-label mdl-textfield__input" placeholder="">
答案
您应该将两个日期转换为javascript Date对象。从我所看到的,两个日期输入的输入都是'dd-mm-yyyy'格式,如果你试图直接将它转换为Date对象,这将导致一些问题。相反,在将其转换为日期对象之前,应将其转换为“yyyy-mm-dd”。
然后,您可以计算两个日期之间的差异。
const str1 = '17-04-2019';
const str2 = '20-04-2019';
const toDate = dateStr => {
const parts = dateStr.split('-');
return new Date(parts[2], parts[1] - 1, parts[0]);
}
const diff = Math.floor((toDate(str2) - toDate(str1) ) / 86400000);
console.log(diff)
另一答案
您可以使用
<input class="form-control" ng-model="day1" ng-blur="getDate(day1)" type="text" readonly />
$scope.getDate= function (date) {
var dates = new Date();
console.log(dates);
}
您可以使用日期事件轻松管理时刻js
var a = moment('2018-04-17T07:00:00.000Z');
var b = moment('2018-04-27T07:00:00.000Z');
var days = b.diff(a, 'days');
或使用Javascript
var a = new Date("2018-04-17T07:00:00.000Z");
var b = new Date("2018-04-27T07:00:00.000Z");
var dayDif = (a - b) / 1000 / 60 / 60 / 24;
另一答案
如上面的上一个答案所述,您可以拆分字符串以获取值。或者像下面一样改变它
例如:假设我的日期字符串是
var str1 = '17-Apr-2019';
var str2 = '20-Apr-2019';
var diff = Math.abs(new Date(str2).getDate() - new Date(str1).getDate());
console.log(diff)
Output => 3
或者,如果您不想要任何代码更改。将datepicker的格式更改为(mm-dd-yyyy)您将获得相同的输出
以上是关于如何从angularjs获得天数的主要内容,如果未能解决你的问题,请参考以下文章