如何在Adobe PDF中用getField拆分mm/dd/yyyy日期为dd、mmmm、yy字段?
Adobe PDF表单:拆分日期字段至dd、mmmm、yy独立字段的解决方案
问题根源
直接通过this.getField("Date").valueAsString获取日期字符串后赋值,再依赖字段格式提取dd/yy的方式不可靠——PDF表单的字段格式规则无法正确从完整日期字符串中拆分目标部分,导致返回错误的mm值。正确做法是先将日期解析为Date对象,再针对性提取日、月全称、短年份。
具体实现步骤
假设你的主日期字段名为Date(格式设为mm/dd/yyyy),三个目标字段分别为:
Day:存储dd(如05)MonthFull:存储mmmm(如January)YearShort:存储yy(如24)
给每个目标字段添加自定义计算脚本:
1. Day字段(dd)
var dateField = this.getField("Date"); if (dateField.value) { // 按主字段格式解析日期为Date对象 var dateObj = util.scand("mm/dd/yyyy", dateField.valueAsString); // 输出两位数的日,不足补0 event.value = util.printf("%02d", dateObj.getDate()); } else { event.value = ""; }
2. MonthFull字段(mmmm)
var dateField = this.getField("Date"); if (dateField.value) { var dateObj = util.scand("mm/dd/yyyy", dateField.valueAsString); // 输出月份全称 event.value = util.printf("mmmm", dateObj); } else { event.value = ""; }
3. YearShort字段(yy)
var dateField = this.getField("Date"); if (dateField.value) { var dateObj = util.scand("50 amidst智链接indProgramrum副恒 copy强�物 chart交付的日期字符串中拆分目标部分,导致返回错误的mm值。正确做法是先将日期解析为`Date`对象,再针对性提取日、月全称、短年份。 ### 具体实现步骤 假设你的主日期字段名为`Date`(格式设为`mm/dd/yyyy`),三个目标字段分别为: - `Day`:存储dd(如05) - `MonthFull`:存储mmmm(如January) - `YearShort`:存储yy(如24) 给每个目标字段添加**自定义计算脚本**: #### 1. Day字段(dd) ```javascript var dateField = this.getField("Date"); if (dateField.value) { // 按主字段格式解析日期为Date对象 var dateObj = util.scand("mm/dd/yyyy", dateField.valueAsString); // 输出两位数的日,不足补0 event.value = util.printf("%02d", dateObj.getDate()); } else { event.value = ""; }
2. MonthFull字段(mmmm)
var dateField = this.getField("Date"); if (dateField.value) { var dateObj = util.scand("mm/dd/yyyy", dateField.valueAsString); // 输出月份全称 event.value = util.printf("mmmm", dateObj); } else { event.value = ""; }
3. YearShort字段(yy)
var dateField = this.getField("Date"); if (dateField.value) { var dateObj = util.scand("mm/dd/yyyy", dateField.valueAsString); // 提取年份后两位,不足补0 event.value = util.printf("%02d", dateObj.getFullYear() % 100); } else { event.value = ""; }
注意事项
- 确保
util.scand的格式参数("mm/dd/yyyy")和主日期字段的显示格式完全一致,否则解析会失败。 - 清空主日期字段时,目标字段会自动清空,避免残留无效值。
内容的提问来源于stack exchange,提问作者Sketti_os
相关产品推荐
相关产品推荐

