【问题标题】:Datatables and moment.js time filtering数据表和 moment.js 时间过滤
【发布时间】:2016-02-17 17:18:46
【问题描述】:

我正在使用数据表 v1.10.11 和 Jquery v 2.2.0。

一切都按预期工作,但是我想在我现有的日期选择器中添加另一个日期过滤器。

我想过滤超过 3 年(截至今天)的项目。

我正在查看http://momentjs.com/docs/#/query/is-after/,但不确定这是否是我需要的,或者如何合并它?

到目前为止我的代码如下;

var table = $('#items').DataTable({});

$("#myInputTextField2").daterangepicker({
    autoUpdateInput: false,
        "ranges": {
        "Today": [moment(), moment()],
        'Yesterday': [moment().subtract(1, 'days'), moment().subtract(1, 'days')],
        'Last 7 Days': [moment().subtract(6, 'days'), moment()],
        'Last 30 Days': [moment().subtract(29, 'days'), moment()],
        'This Month': [moment().startOf('month'), moment().endOf('month')],
        'Last Month': [moment().subtract(1, 'month').startOf('month'), moment().subtract(1, 'month').endOf('month')],
        'Last Year': [moment().subtract(365, 'days'), moment()],
        'Last 3 Years': [moment().subtract(1095, 'days'), moment()]
        // Over 3 years old option here
    }
});

澄清一下,我想过滤超过三年的项目。

我目前可以让它工作的唯一方法是将“超过 3 年”设置如下;

'Over 3 Years': [moment("1970-01-01"), moment().subtract(3, 'years')]

我确定有更好的方法吗?

任何帮助表示赞赏。

【问题讨论】:

    标签: javascript jquery datatable datatables momentjs


    【解决方案1】:

    不要使用

    moment().subtract(1095, 'days')
    

    并不总是“3 年”,使用

    moment().subtract(3, 'years')
    

    考虑闰年

    【讨论】:

    • 也许我误解了你的问题?你能说得更准确一点吗?
    • 我已经在我的代码中更改了它并且它可以工作。感谢您的提示。
    • 欢迎您。您介意将问题标记为已解决吗?
    • 我的问题仍然没有解决。我的主要问题仍然存在。我无法过滤超过三年的项目。您的建议过滤了三年内的项目。
    【解决方案2】:

    你有最短的约会时间吗? 因此,由于语法是“from”,“to”,它可能类似于

    'Over 3 Years': [moment("1492-10-12"), moment().subtract(3, 'years')]
    

    【讨论】:

    • 是的。如我的问题所述,将从今天开始。所以基本上是三年以上的物品。感谢您的建议。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-05-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多