iT邦幫忙

1

google form 如何驗證時間

  • 分享至 

  • xImage

我的form有兩個時間,分別為A,B
我要驗證B不可以小於A

不明 檢舉
你是表單上面有兩個填寫時間的地方,驗證時間大小無法再前台驗證,只能在送完表單後才有辦法確認,並修改某個Column的數值為Enable或是Disable這樣子是可以做到的
wn0723 iT邦新手 5 級 ‧ 2024-05-03 08:24:17 檢舉
好的,感謝
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

0

花個幾分鐘打一下,剛剛在留言區的構想,你在自己參考一下

function timeCompare (){
  try{
    const ssID        = ""; //請輸入https://docs.google.com/spreadsheets/d/[請把這裡的數值複製進來]/edit#gid=0 
    const sheetName   = ""; //工作表名稱  
    const col_Smaller = ""; //請輸入送入後的欄位英文,ea:A
    const col_Larger  = ""; //請輸入送入後的欄位英文,ea:B
    const col_result  = ""; //要輸出結果的欄位
    const timeRegex   = "^\d{4}\/\d{1,2}\/\d{1,2} [上|下]午 \d{1,2}:\d{1,2}:\d{1,2}$"; //確認格子內容是不是為日期時間 ea:2024/12/11 上午 12:12:00
    //如果這時B欄大於A欄時不會將將con_result 為 true , 只會保持false
    const ss          = SpreadsheetApp.openById(ssID).getSheetByName(sheetName);
    const lastRow     = ss.getLastRow().toString(); //取得最後一筆進來的資料
    const cell_Smaller= ss.getRange(col_Smaller+lastRow).getValue();
    const cell_Larger= ss.getRange(col_Larger+lastRow).getValue();
    const regex = new RegExp(timeRegex);
    //有其中一個格子不是日期時間格式,不執行程式
    if (!((regex.test(cell_Smaller)==false || regex.test(cell_Larger)==false))){
      if (new Date(cell_Smaller).getTime()>new Date(cell_Larger).getTime()){
        //如果目標小的欄位大於目標大的欄位時為true
        ss.getRange(col_result+lastRow).setValue(true);
      }else{
        //否則為false
        ss.getRange(col_result+lastRow).setValue(false);
      }
    }
  }catch(ex){
    //發生錯誤的訊息
    console.log(ex);
  }
}
wn0723 iT邦新手 5 級 ‧ 2024-05-03 08:24:34 檢舉

好的,感謝

我要發表回答

立即登入回答