当前位置: 首页 > 面试题库 >

如何减去两个angularjs日期变量

符渊
2023-03-14
问题内容

我对angularjs相当陌生,但现在就开始了。我可以通过angularjs窗体中的两个日期dd/mm/yyyy,但是我需要做的是以某种方式减去两个日期以得到两者之间的天数差异。我创建了一个jQuery函数来执行此操作,但是我不知道如何将两个日期传递给该函数。所以我想知道是否还有其他方法可以解决此问题?

我正在尝试根据两个日期之间要设置样式的某些天之间的天数来设置触发器系统。例如,如果要在10天内使用 样式1 ,如果要在20天内使用 样式2
,依此类推。


问题答案:

我也是angularjs新手,但是您不会通过在javascript视图模型中提供属性来处理此问题吗?

例如,有一个基于日期字段更改的 样式 字段(即,如果相差10天,样式将返回样式1),并希望通过angularjs绑定将更新传播到屏幕。

我认为正确的术语是 计算属性计算属性

编辑

不确定这是否是您要查找的内容,但请参见小提琴,例如,计算所有日期差异和更改样式均基于视图模型(范围)的属性

scope.diff并且scope.col是结合到2个属性

http://jsfiddle.net/chrismoutray/wfjv6/

HTML

<script src="http://code.angularjs.org/0.10.4/angular-0.10.4.min.js" ng:autobind></script>
<div ng:controller="ComputedPropertiesCtrl">
    first date <input ng:model="firstdate"> second date <input ng:model="seconddate"> difference {{diff}}
    <div>when the difference is greater than 10 color changes to green</div>
    <div>eg set the second date to 15/01/2013</div>
    <div style="background-color:{{col}};"> State </div>
</div>

JS

function ComputedPropertiesCtrl() {
    var scope = this;
    scope.firstdate = '01/01/2013';
    scope.seconddate = '10/01/2013';
    scope.data_before = [];
    scope.differenceInDays = function() {

        var dt1 = scope.firstdate.split('/'),
            dt2 = scope.seconddate.split('/'),
            one = new Date(dt1[2], dt1[1]-1, dt1[0]),
            two = new Date(dt2[2], dt2[1]-1, dt2[0]);

        var millisecondsPerDay = 1000 * 60 * 60 * 24;
        var millisBetween = two.getTime() - one.getTime();
        var days = millisBetween / millisecondsPerDay;

        return Math.floor(days);      
    };
    scope.color = function() {
        return (scope.differenceInDays() > 10) ? 'green' : 'red';
    };

    scope.$watch('[firstdate, seconddate]', function(currScope,newVal,oldVal) {
        scope.data_before = oldVal;
        scope.diff = scope.differenceInDays();
    });

    scope.$watch('[firstdate, seconddate]', function(currScope,newVal,oldVal) {
        scope.data_before = oldVal;
        scope.col = scope.color();
    });
}

CSS

h2 { position: fixed; right: 10px; top: 10px; color: red; background:white;z-index:1000; }
input { width: 100px; }
div { margin: 10px; padding: 10px; }


 类似资料:
  • 我明白,为什么我们得到0(毫秒数的差异不构成24小时),但我不明白需要做什么才能得到1。有什么建议吗.提前道谢。

  • 问题内容: 我正在从一个字符串中解析两个日期,如下所示: 我需要做的是找出这两个日期之间的区别,例如: = 8天2小时36分钟21秒 ^这是我需要的两个日期/时间 我相信我需要解析格式并将其转换为另一种格式,然后减去两者之间的差并进行数学运算以得出之间的天/小时/分钟/秒 问题答案: 与其他回答者试图暗示的相反,在标准Java SE中,计算两个日期之间的差异并不是那么简单。 您的第一步确实是将这些

  • 问题内容: 我的心脏必须深入到减去两个日期以计算出天数后,内部开始流血: .NET或你命名的任何现代语言中只有两行代码。 这对Java不好吗?还是我应该知道一个隐藏的方法? 可以在util中使用Date类而不使用GregorianCalendar吗?如果是这样,我是否应该提防像1970年这样的细微事情? 谢谢 问题答案: 这确实是标准Java API中最大的史诗失败之一。有一点耐心,那么你将获得J

  • 问题内容: 我想在表中选择所有记录,这些记录的输入日期早于2个月。 知道我该怎么做吗? 我还没有尝试过任何东西,但是我在这一点上: 问题答案: 如果您使用的是SQL Server,请尝试以下操作: 根据您的更新,它将是:

  • 问题内容: 我有一个这样的日期: 如何返回同一日期但比一年前早的日期? 问题答案: 您可以使用: 该函数返回unix时间戳,可以使用以下格式的字符串:

  • 如何减去上述格式的两个javascript日期,并知道它们之间的天数,然后以dd/月/年格式返回结果。另外,我想添加180days到date1,并以dd/月/年格式输出结果?谢谢你的帮助。