Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/396.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 计算制表器行操作中的日期时间差_Javascript_Html_Tabulator_Tabulator Py - Fatal编程技术网

Javascript 计算制表器行操作中的日期时间差

Javascript 计算制表器行操作中的日期时间差,javascript,html,tabulator,tabulator-py,Javascript,Html,Tabulator,Tabulator Py,我有一个场景,我想计算两行之间的时间差(以分钟为单位),并将数据放在连续的行中。我正在使用。 目前,我已经讨论了列的定义,但我不确定如何在行上实现这种场景。然而,我尝试了下面的选项,它似乎不起作用 var table = new Tabulator("#editor", { downloadConfig:{ columnGroups:false, rowGroups:false, },

我有一个场景,我想计算两行之间的时间差(以分钟为单位),并将数据放在连续的行中。我正在使用。 目前,我已经讨论了列的定义,但我不确定如何在行上实现这种场景。然而,我尝试了下面的选项,它似乎不起作用

var table = new Tabulator("#editor", {
        downloadConfig:{
            columnGroups:false, 
            rowGroups:false,
        },
        height:360, 
        data: arrayFlight,
        pagination:"local",
        resizableColumns: false,
        paginationSize:12,
        columnVertAlign:"center",
        columnHoriAlign:"center",
        columns:[
                {title:"Start time", field:"sTime", align:"center", formatter:"datetime", formatterParams:{inputFormat:"DD-MM-YYYY hh:mm:ss", outputFormat:"DD-MM-YYYY hh:mm:ss", invalidPlaceholder:"-"}, sorter:false, headerSort:false, width:95},
                {title:"End time", field:"eTime", align:"center", formatter:"datetime", formatterParams:{inputFormat:"DD-MM-YYYY hh:mm:ss", outputFormat:"DD-MM-YY hh:mm:ss", invalidPlaceholder:"-"}, sorter:false, headerSort:false, width:95},
                {title:"Duration", field:"durTime", align:"center", calc: sTime-eTime, sorter:false, headerSort:false, width:95},
                ],
            },  
        ],
以下是我如何想象这一点:


非常感谢您的帮助。

正如@Adrian Klaver所说,正确的方法是使用a来计算新列的值

而且正如@adrian已经指出的,你所犯的错误与他的提议无关

基本上,首先创建一个mutator函数,该函数将接收行数据,然后根据该行数据返回该列的新值

var durationMutator=函数(值、数据){
//值-单元格的原始值
//数据-行的数据
var开始=新日期(data.sTime);
var end=新日期(data.eTime);
返回结束-开始;
}
然后,您可以将其分配给mutator属性上的持续时间列:

{title:"Duration", field:"durTime", mutator:durationMutator},

这就是你需要做的一切。

看。@AdriankAver我看了一下,但不太明白,你能不能帮我详细说明一下它将如何处理行操作。看看这个@AdriankAver这里,
Diff
字段的值在编辑后不会改变,当我在加载数据后编辑字段
开始时间
完成时间
中的值时。@olifolkerd当我编辑单元格时,数据会随着上述实现而动态变化吗?好的,不会,因为变异器只在
durTime
字段上工作。正如我在第二部分中所展示的,您需要在您编辑的字段上放置
mutatorEdit
。@adriankaver好的,那么
if(type==“edit”){console.log('edit');component.getRow().getCell(“timeDiff”).setValue(new_value);return value;//返回单元格数据的新值。}else{return new_value}}
因为这里我得到的错误是
Uncaught(in promise)ReferenceError:type未定义
没有上下文的代码片段没有用处。您需要在中显示您正在使用的整个代码部分。@adriankaver这里是定义了上下文的完整代码[link]。每当我使用您为
type==edit
提供的fiddle代码时,它会说error
类型未定义
。你能帮忙吗