Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何从angularjs获取天数_Javascript_Angularjs_Angularjs Scope - Fatal编程技术网

Javascript 如何从angularjs获取天数

Javascript 如何从angularjs获取天数,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,如何获取两个日期之间的天数但它不起作用我认为我的日期格式不正确,但如何更改日期格式并获取天数 $scope.ChangeDate = function () { var oneDay = 24 * 60 * 60 * 1000; var firstDate = $scope.Current.PlainnedStart; var secondDate = $scope.Current.PlainnedEnd; if (!angular.isUndefin

如何获取两个日期之间的天数但它不起作用我认为我的日期格式不正确,但如何更改日期格式并获取天数

$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;          
    }
}



您应该将这两个日期转换为JavaScript对象。据我所见,来自两个日期输入的输入都是“dd-mm-yyyy”格式,如果您试图直接将其转换为日期对象,这将导致一些问题。相反,在将其转换为日期对象之前,应将其转换为“yyyy-mm-dd”

然后,您可以计算两个日期之间的差异

const str1='17-04-2019';
const str2='20-04-2019';
const toDate=dateStr=>{
const parts=dateStr.split('-');
返回新日期(零件[2],零件[1]-1,零件[0]);
}
常数差=数学层((toDate(str2)-toDate(str1))/86400000;

console.log(diff)
如上一个答案中所述,您可以拆分字符串以获取值。或者像下面这样改变它

假设我的日期字符串是

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
或者如果您不希望任何代码更改。 将日期选择器的格式更改为(mm dd yyyy),您将获得与您可以使用的相同的输出

<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);
}

或者使用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;

检查一下,您是否从这两个输入中获取字符串值?还是日期对象?请尝试使用该指令。
onchange
属性未与AngularJS框架集成。只有在AngularJS执行上下文中应用的操作才会受益于AngularJS数据绑定、异常处理、属性监视等@adelaijaz您可以尝试在firstDate或secondDate上运行console.log()?让我知道结果是什么。我只是想看看格式。
var a = moment('2018-04-17T07:00:00.000Z');
var b = moment('2018-04-27T07:00:00.000Z'); 
var days = b.diff(a, 'days');
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;