Javascript Angularjs:如何计算两次约会之间的周数?

Javascript Angularjs:如何计算两次约会之间的周数?,javascript,Javascript,我需要计算一个角度项目中两个日期之间的周数 我试过这个: vakken.getWeken = function() { vakken.tijd = 0; vakken.weken = 0; var een_week = 1000 * 60 * 60 * 24 * 7; var d1ms = vakken.periodeind.getTime(); var d2ms = vakken.periodstart.getTime(); var ve

我需要计算一个角度项目中两个日期之间的周数

我试过这个:

vakken.getWeken = function() {

    vakken.tijd = 0;
    vakken.weken = 0;

    var een_week = 1000 * 60 * 60 * 24 * 7;

    var d1ms = vakken.periodeind.getTime();
    var d2ms = vakken.periodstart.getTime();

    var verschilms = Math.abs(d1ms - d2ms);

    vakken.weken = Math.floor(verschilms / een_week);

    console.log(vakken.weken)
}
但是我得到了这个
typeError
,typeError:vakken.periodeind.getTime不是一个函数

电话:


因为这些变量没有定义,所以必须使用一个对象或两个不同的变量将它们作为输入参数传递。如果你选择了vaken,它有
周期结束
周期开始

vakken.getWeken = function(vakken) {
    vakken.tijd = 0;
    vakken.weken = 0;
    var een_week = 1000 * 60 * 60 * 24 * 7;
    var d1ms = vakken.periodeind.getTime();
    var d2ms = vakken.periodstart.getTime();
    var verschilms = Math.abs(d1ms - d2ms);
    vakken.weken = Math.floor(verschilms / een_week);
    console.log(vakken.weken)
}
编辑:

将这两个变量传递给函数

 vakken.periodstart = response.data.periods[0].start.full;
 vakken.periodeind = response.data.periods[0].eind.full;
 vakken.getWeken(vakken.periodstart,vakken.periodeind);
在功能上

 vakken.getWeken = function(fromDate,ToDate) {
        vakken.tijd = 0;
        vakken.weken = 0;
        var een_week = 1000 * 60 * 60 * 24 * 7;
        var d1ms = fromDate.getTime();
        var d2ms = ToDate.getTime();
        var verschilms = Math.abs(d1ms - d2ms);
        vakken.weken = Math.floor(verschilms / een_week);
        console.log(vakken.weken)
    }

假设开始日期和结束日期应该是定义该方法的同一“vakken”上的属性,您可能想执行以下操作:

vakken.getWeken = function() {

    this.tijd = 0;
    this.weken = 0;

    var een_week = 1000 * 60 * 60 * 24 * 7;

    var d1ms = this.periodeind.getTime();
    var d2ms = this.periodstart.getTime();

    var verschilms = Math.abs(d1ms - d2ms);

    this.weken = Math.floor(verschilms / een_week);

    console.log(this.weken);
}
使用:

要获得整整一周:

时刻(最后一天)。差异(第一天,“周”)

或者添加
true
以获得以周为单位的精确数字:

时刻(最后日期).diff(第一个日期“周”,真)

您确定periodeind是日期吗?您可以将该值记录到控制台并查看它是什么吗?
vakken
是如何定义的?在该函数的开头尝试一个
console.log(vakken)
。我已经记录了它,它给出了一个日期vakken在这里定义:
controller:[“$http”,“userValue”,“studentService”,函数($http,user,service){vakken=this;
我猜这些日期是以字符串的形式返回的。您需要将字符串解析为日期对象,然后才能对其调用getTime()。当您记录它们时,它们以什么格式返回?请查看date.parse()方法我认为必须已经定义了
vakken
,因为函数本身是
vakken
的一个方法。@nnnnnn我的意思是他没有提到这些变量来自于api调用的何处。我将把这个问题放在如果它是相同的
vakken
,为什么从I在函数中?使用
这个
更简洁,但在这里不需要。我必须看看你是如何定义vakken的,以及你是如何创建一个vakken的。现在我看到了代码,在这种情况下它不会有什么区别,但请看我对你原来问题的评论。如果你是返回日期字符串,你需要将它们解析成日期调用getTime()之前的对象是的,我认为这是问题所在,但我最终用了一种完全不同的方式
vakken.getWeken = function() {

    this.tijd = 0;
    this.weken = 0;

    var een_week = 1000 * 60 * 60 * 24 * 7;

    var d1ms = this.periodeind.getTime();
    var d2ms = this.periodstart.getTime();

    var verschilms = Math.abs(d1ms - d2ms);

    this.weken = Math.floor(verschilms / een_week);

    console.log(this.weken);
}