Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/371.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 剑道DateRangePicker中的动态名称_Javascript_Datetime_Kendo Ui_Momentjs - Fatal编程技术网

Javascript 剑道DateRangePicker中的动态名称

Javascript 剑道DateRangePicker中的动态名称,javascript,datetime,kendo-ui,momentjs,Javascript,Datetime,Kendo Ui,Momentjs,我有一个剑道日期选择器,定义如下: $('#range').daterangepicker( { ranges: { 'Today': [moment(), moment()], 'Yesterday': [moment().subtract('days', 1), moment().subtract('days', 1)], 'Last 7 Days': [moment().subtract

我有一个剑道日期选择器,定义如下:

    $('#range').daterangepicker(
    {
        ranges: {
            'Today': [moment(), moment()],
            'Yesterday': [moment().subtract('days', 1), moment().subtract('days', 1)],
            'Last 7 Days': [moment().subtract('days', 6), moment()],
            'Last 30 Days': [moment().subtract('days', 29), moment()],
            'This Month': [moment().startOf('month'), moment().endOf('month')],
            'Last Month': [moment().subtract('month', 1).startOf('month'), moment().subtract('month', 1).endOf('month')]
        },
        startDate: moment().subtract('days', 29),
        endDate: moment()
    },
    function(start, end) {
        $('#startDate').val(start.format('M/D/YYYY'));
        $('#endDate').val(end.format('M/D/YYYY'));
        refreshFileList();
    }
).prev().on("click", function() {
    $(this).next().focus();
});
如何将今天、昨天等更改为从变量读取的值,而不是在Javascript中硬编码的值。例如:

var oneMonth = "One Month";

    $('#range').daterangepicker(
    {
        ranges: {
            oneMonth : [moment().subtract('month', 1), moment()],
            threeMonths: [moment().subtract('month', 3), moment()],
            sixMonths: [moment().subtract('month', 6), moment()],
            allMonths: [moment().subtract('year', 15), moment()]
        },
        startDate: moment().subtract('month', 3),
        endDate: moment()
    },
    function (start, end) {
        $('#startDate').val(start.format('M/D/YYYY'));
        $('#endDate').val(end.format('M/D/YYYY'));
        refreshThumbnails();
    }).prev().on("click", function () {
    $(this).next().focus();
});

当我执行上述操作时,它在日期范围选择器中显示变量名oneMonth,而不是显示值oneMonth One Month

对于基于变量值的动态属性名称,将使用括号表示法

在范围规范之前创建数据对象。使用对象括号表示法向对象添加动态特性名称。使用对象作为“范围”选项的属性

oneMonthLabel = "One Month";

myranges = {};
myranges[oneMonthLabel] = [moment().subtract('month', 1), moment()];

$('#range').daterangepicker(
...
    ranges: myRanges,
如果不需要基于变量设置属性,只需使用带引号的属性名称

    ranges: {
        "One month" : [moment().subtract('month', 1), moment()],
        "3 months": [moment().subtract('month', 3), moment()],
        "6 months": [moment().subtract('month', 6), moment()],
        "All months": [moment().subtract('year', 15), moment()]
    },