You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何实现Google Forms日期时间字段自动填充当前日期?

解决Google Forms日期字段自动填充当前日期的方案

一、用Google Apps Script实现日期自动填充

操作步骤

  1. 打开目标Google Forms,点击顶部菜单「扩展程序」→「Apps Script」进入脚本编辑器。
  2. 替换默认代码为以下脚本,修改其中的targetDateFieldId为你的日期字段ID(获取方式:编辑表单时点击日期字段→右上角三个点→「获取字段ID」)。
  3. 保存脚本并授权运行权限。

示例代码

function generatePrefillDateUrl() {
  // 获取当前表单实例
  const form = FormApp.getActiveForm();
  // 替换为你的日期字段ID
  const targetDateFieldId = "替换为实际日期字段ID";
  const dateItem = form.getItemById(targetDateFieldId).asDateItem();

  // 获取并格式化当前日期为YYYY-MM-DD格式
  const currentDate = new Date();
  const formattedDate = Utilities.formatDate(
    currentDate,
    Session.getScriptTimeZone(),
    "yyyy-MM-dd"
  );

  // 生成预填当前日期的表单URL
  const prefilledResponse = form.createResponse()
    .withItemResponse(dateItem.createResponse(new Date(formattedDate)));
  const prefillUrl = prefilledResponse.toPrefilledUrl();

  // 输出URL到日志,你也可以将其写入表单描述或Google Sheets
  console.log("当日预填URL:" + prefillUrl);
}

进阶优化:自动每日更新预填链接

添加以下脚本,设置每日时间触发器(脚本编辑器左侧「触发器」→「添加触发器」,选择该函数,触发事件设为「时间驱动」→「日计时器」),可自动将当日预填URL更新到表单描述中:

function updateFormWithDailyPrefillUrl() {
  const form = FormApp.getActiveForm();
  const targetDateFieldId = "替换为实际日期字段ID";
  const dateItem = form.getItemById(targetDateFieldId).asDateItem();

  const currentDate = new Date();
  const formattedDate = Utilities.formatDate(
    currentDate,
    Session.getScriptTimeZone(),
    "yyyy-MM-dd"
  );

  const prefillUrl = form.createResponse()
    .withItemResponse(dateItem.createResponse(new Date(formattedDate)))
    .toPrefilledUrl();

  // 更新表单描述,用户打开表单即可看到当日预填链接
  form.setDescription(`今日考勤预填链接:${prefillUrl}`);
}

二、无需搭建网站的动态预填URL方案

除了上述脚本自动更新的方式,还可以通过以下方法实现动态日期预填:

  • Google Sheets联动:编写脚本将每日生成的预填URL写入Google Sheets的固定单元格,员工访问该Sheets单元格内的链接即可打开当日预填表单;
  • 表单自定义菜单:在脚本中添加自定义菜单,用户打开表单时点击菜单即可生成并跳转至当日预填表单,示例代码如下:
function onOpen() {
  const ui = FormApp.getUi();
  ui.createMenu("考勤工具")
    .addItem("打开今日预填表单", "openTodayPrefillForm")
    .addToUi();
}

function openTodayPrefillForm() {
  const form = FormApp.getActiveForm();
  const targetDateFieldId = "替换为实际日期字段ID";
  const dateItem = form.getItemById(targetDateFieldId).asDateItem();

  const currentDate = new Date();
  const formattedDate = Utilities.formatDate(
    currentDate,
    Session.getScriptTimeZone(),
    "yyyy-MM-dd"
  );

  const prefillUrl = form.createResponse()
    .withItemResponse(dateItem.createResponse(new Date(formattedDate)))
    .toPrefilledUrl();

  // 打开预填表单
  FormApp.getUi().openUrl(prefillUrl);
}

三、可用插件推荐

目前直接支持自动填充当前日期的Google Forms插件较少,以下插件可结合脚本实现需求:

  • Form Publisher:可通过配置模板和脚本联动,实现预填日期字段后生成考勤记录文档;
  • Form Ranger:虽主打下拉列表数据同步,但可配合自定义脚本扩展日期预填功能;

注:多数AI类插件暂未提供直接的日期自动填充功能,官方Apps Script方案稳定性和可控性更强。

内容的提问来源于stack exchange,提问作者egscodes

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 04:41:15