Javascript 时间得到年,而不是区别

Javascript 时间得到年,而不是区别,javascript,momentjs,Javascript,Momentjs,我试图将年份包含在给定的日期范围内 这样,用户和输入将于2015年12月1日至7月1日进行。2016年1月。我可以得到2015年,但我也需要包括2016年 目前,我正在将两个日期之间的差异作为年份进行计算: var tmpStart = moment($scope.dates1.startDate); var tmpEnd = moment($scope.dates1.endDate); var years = tmpEnd.diff(tmpStart, 'year');

我试图将年份包含在给定的日期范围内

这样,用户和输入将于2015年12月1日至7月1日进行。2016年1月。我可以得到2015年,但我也需要包括2016年

目前,我正在将两个日期之间的差异作为年份进行计算:

   var tmpStart = moment($scope.dates1.startDate);
    var tmpEnd = moment($scope.dates1.endDate);
    var years = tmpEnd.diff(tmpStart, 'year');
    for (var i = 0; i < years+1; i++) {
        var tmpD = moment($scope.dates1.startDate);
        tmpD.add(i, 'years');
        sc.dtColumns.push(DTColumnBuilder.newColumn(tmpD.format('YYYY')).withTitle('Total ' + tmpD.format('YYYY')));
    }
var tmpStart=moment($scope.dates1.startDate);
var tmpEnd=时刻($scope.dates1.endDate);
风险年数=TMP支出差异(TMP开始,“年”);
对于(var i=0;i
最好的方法是什么?我确信我可以将年份解析为int,然后比较看有多少年,但我觉得这不是正确的方法。

$scope.startDate='01/01/2014';
  $scope.startDate = '01/01/2014';
    $scope.endDate = moment(d).format("MM/DD/YYYY");
    var tmpEndYear = moment(d).format("YYYY");
    var tmpStart = moment("20140101", "YYYYMMDD");
    sc.dtColumns = [DTColumnBuilder.newColumn('ProductNumber').withTitle('Item')];
    var tmpEnd = moment(d);
    $scope.dates1.startDate = moment("20140101", "YYYYMMDD");
    $scope.dates1.endDate = tmpEnd;
    for (var i = 2014; i <= tmpEndYear; i++) {
        sc.dtColumns.push(DTColumnBuilder.newColumn(i).withTitle('Total ' + i));
    }
    while (tmpEnd > tmpStart) {
        sc.months.push(tmpStart.format('MM-YYYY'));
        tmpStart.add(1, 'month');
    }
$scope.endDate=力矩(d).格式(“MM/DD/YYYY”); var tPendYear=时刻(d).格式(“YYYY”); var tmpStart=力矩(“20140101”,“yyyyymmdd”); sc.dtColumns=[DTColumnBuilder.newColumn('ProductNumber')。with title('Item'); var tmpEnd=力矩(d); $scope.dates1.startDate=时刻(“20140101”,“yyyyymmdd”); $scope.dates1.endDate=tmpEnd; 对于(var i=2014;i tmpStart){ sc.months.push(tmpStart.format('MM-YYYY')); tmpStart.添加(1,“月”); }

最终解析出int并从那里使用它。

您不需要在里面花费时间。只需获得开始/结束年份,然后在它们之间循环。:
s=2014;e=2016年;对于(y=s,ySo基本上只是将年份解析为int和comparepretty。无论如何,除了生成年份值之外,你什么也不做,所以现在就没有必要去做了。只需将年份视为整数。现在,如果你必须处理部分年份,或时髦的增量(“3个月2天”)不管怎样,坚持现在。但在这种情况下,越简单越好。