使用DateJS,您可以添加例如到目前为止的六个月是这样的:
Date.today().addMonths(6);
但是,我需要将24个月添加到今天的日期,而不是添加到用户输入日期字段的日期。因此today()
原则上应该被this.getField('begin_date').value
。
结果应写入另一个数据表单字段。
我努力了,但无法做到。任何人都可以帮助我吗?
答案 0 :(得分:0)
提供输入值是日期的文本表示,您需要首先将其转换为Date
对象。然后你可以随心所欲地使用它。
DateJS有一个非常聪明的parse()
功能,它就是这样做的,所以你可以这样做:
Date.parse(this.getField('begin_date').value).addMonths(24)
如果需要特定的日期格式,例如欧洲常用的DD.MM.YYYY
,您可以使用parseExact()
并指定格式。像这样:
Date.parseExact(dateToParse, 'dd.MM.yyyy') // leading zeroes required; parses 01.04.2014 but not 1.4.2014
Date.parseExact(dateToParse, 'd.M.yyyy') // leading zeroes not required; parses both 01.04.2014 and 1.4.2014
答案 1 :(得分:0)
以下是我使用DateJS找到问题的解决方案:
start = this.getField('begin_date').value;
var d1 = util.scand("dd.mm.yyyy", start);
var myDate = new Date(d1);
result = myDate.addMonths(24);
除了2014年2月28日,2014/18/2022 ...之外,这项工作非常精细,也跨越了闰年。结果将是2016年2月28日,即2016/2020/2024 ...而不是2016/2020/2024的2月29日......在这些情况下,由用户接受第28次或手动更改日期到了29日。