如何将HTML表单日期输入按日/月/年格式存入Google Sheet
方案1:在提交代码中统一格式化日期(最稳妥,输出固定格式字符串)
先写一个通用日期格式化函数,把输入的日期值统一转为日/月/年格式,同时兼容空值和非法日期输入避免报错:
function formatDateToDMY(inputDate) { if (!inputDate) return ''; const date = new Date(inputDate); // 校验日期合法性,不合法直接返回原值 if (isNaN(date.getTime())) return inputDate; // 日、月补前导零,月份取值为0-11需要+1 const day = String(date.getDate()).padStart(2, '0'); const month = String(date.getMonth() + 1).padStart(2, '0'); const year = date.getFullYear(); return `${day}/${month}/${year}`; }
然后修改你的getFormValues函数,把需要转换的日期字段批量处理,不需要逐个修改字段,后续新增日期字段也只需维护数组即可:
function getFormValues(formObject){ // 列出所有需要转换格式的日期字段名 const dateFields = ['firmenp', 'onboarding', 'selbsttraining', 'crmm', 'tblock1', 'fdtblock', 'wochentraining', 'zielplanung']; // 批量转换日期格式 dateFields.forEach(field => { if (formObject[field]) { formObject[field] = formatDateToDMY(formObject[field]); } }); if(formObject.RecId && checkID(formObject.RecId)){ var values = [[formObject.RecId.toString(), formObject.name, formObject.unternehmen, formObject.rufnummer, formObject.email, formObject.firmenp, formObject.onboarding, formObject.selbsttraining, formObject.crmm, formObject.tblock1, formObject.fdtblock, formObject.wochentraining, formObject.zielplanung, formObject.changestatus]]; }else{ var values = [[new Date().getTime().toString(), formObject.name, formObject.unternehmen, formObject.rufnummer, formObject.email, formObject.firmenp, formObject.onboarding, formObject.selbsttraining, formObject.crmm, formObject.tblock1, formObject.fdtblock, formObject.wochentraining, formObject.zielplanung, formObject.changestatus]]; } return values; }
方案2:直接在Google Sheet中设置格式(保留日期类型,方便后续计算)
如果你后续需要对这些日期做排序、时差计算等操作,不需要转成字符串,可以不用修改代码,直接在目标表格中操作:
- 选中所有需要设置格式的日期列
- 点击顶部菜单栏「格式」→「数字」→「自定义日期和时间」
- 选择或手动输入
dd/mm/yyyy格式保存即可
这种方案存入表格的仍是标准日期类型,仅显示为日/月/年格式,后续数据处理灵活性更高。
内容的提问来源于stack exchange,提问作者Bob Hardball
相关产品推荐
相关产品推荐

