基于PDF表单中的独立表单字段计算日期



我想计算一个恰好比PDF表单中单独日期字段中选择的日期早5天的日期。例如,如果我选择"July 10, 2021"在Date1中,我希望Date2自动填充"July 5, 2021"。

我知道如何从字段1中获取日期并用它填充字段2,并且我知道如何进行5天前的计算。我真正纠结的是如何在文档中把这两件事放在一起。如果我想从当前日期开始计算5天前的时间,我可以做到这一点,因为它在地球和互联网上都有记录,哈哈。但是,从另一个字段中的选定日期计算5天前的时间让我陷入了一个循环。

我不是很精通JavaScript,但我也想知道这是否可能是一个解决方案:

//turning this piece of code    
event.value=this.getField("Date1").value;
//into this piece of code
var d = this.getField("Date1").value;

因为我不需要第二个日期字段来实际填充第一个日期字段值,我想知道它是否像将第一个字段值转换为变量一样简单,然后将变量放入"自定义计算脚本"下的计算脚本中。

虽然我无法帮助您设置/获取PDF表单项,但这里是如何在JavaScript中使用日期字符串格式"MMM DD, YYYY":

在日期中添加或减去天数。

const months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun',
'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'
];
// convert "MMM, DD, YYYY" string to Date object
function makeDateFromStr(str) {
const strNoComma = str.split(',').join('');
const [monthStr, day, year] = strNoComma.split(' ');
const monthIndex = months.indexOf(monthStr);
return new Date(year, monthIndex, day);
}
// add/subtract number of days to Date object,
// returning new date
function addDaysToDate(date, addDays) {
const currDays = date.getDate();
const newDate = new Date(date.getTime());
newDate.setDate(currDays + addDays);
return newDate;
}
// convert Date object to string "MMM DD, YYYY"
function myDateFormat(date) {
const monthStr = months[date.getMonth()];
const day = date.getDate();
const year = date.getFullYear();
return `${monthStr} ${day}, ${year}`;
}
const date1Str = "Jul 10, 2011";
console.log(`date1Str: "${date1Str}"`);
const date1 = makeDateFromStr(date1Str);
console.log('date1:',date1.toISOString());
const date2 = addDaysToDate(date1, -5);
console.log('date2:',date2.toISOString());
const date2Str = myDateFormat(date2);
console.log(`date2Str: "${date2Str}"`);

最新更新