如何减去年份并在日期中增加月份?

时间:2019-04-10 14:26:40

标签: javascript date pentaho pentaho-spoon pentaho-data-integration

我有一列包含将来的日期,我想使用修改后的JavaScript步骤减去年份并增加月份。

CloseDate的数据类型为Date,格式为mm / dd / yyyy。例如01/10/2020

我尝试了以下操作:

var newDate;
year(CloseDate) = year(CloseDate)-1;
month(CloseDate) = month(CloseDate)+5;
newDate = CloseDate;

但是它没有修改日期,并且出现以下错误:

Modified JavaScript value.0 - Javascript error: 
Modified JavaScript value.0 - ReferenceError: Function function year() {
    [native code, arity=1]
}
 can not be used as the left-hand side of assignment or as an operand of ++ or -- operator. (script#11)

我在JavaScript代码中缺少某些内容吗?

2 个答案:

答案 0 :(得分:1)

您需要将新的年份和月份分配给有效变量:

pg

我们在努力的同时,也应该获得成功:

var year = CloseDate.getFullYear()-1;
var month = CloseDate.getMonth()+5;

请注意,var day = CloseDate.getDate(); 左侧的括号没有任何意义,并会导致错误。另外,我使用正确的函数名称来获取日期的各个部分。这些函数在=原型中,因此我必须使用点符号来访问它们。我通过搜索“ javascript date”然后单击MDN文档的第一个链接来找到这些文件。

最后,将各部分放回一个完整的日期:

Date

答案 1 :(得分:0)

如果CloseDate已经是Date字段,则可以在PDI的Modified JavaScript Script Value Step中使用dateAdd function():

var newDate = dateAdd(dateAdd(CloseDate,"y",-1), "m", 5)