将两个日期转换为字符串并比较它们

我想比较两个日期,如果它们相等就做一些事情。

第一个日期来自谷歌表格。单元格格式为日期,本地化为法国 (GMT+1)。 第二个日期来自用户填写的 HTML 表单日期字段。

我想比较yyyy--MM--dd格式的字符串,所以我使用了Utilities.format()函数。 当我显示字符串值时,似乎一切正常。

但是当字符串比较不起作用时。应该是转换问题。我做了一些测试,没有任何效果。

这是我的代码的一部分

//...
  } else {
    Spreadsheetapp.getUi().alert(formObject.licenseExpiration); // Works. Displays yyyy-MM--dd
    Spreadsheetapp.getUi().alert(Utilities.formatDate(sheetDataRangeValues[0][7],"GMT+1","yyyy-MM-dd")); // Works. Displays yyyy-MM--dd
    if (Utilities.formatDate(formObject.licenseExpiration,"yyyy-MM-dd") == Utilities.formatDate(sheetDataRangeValues[0][7],"yyyy-MM-dd") || formObject.licenseExpiration == "") {
      Spreadsheetapp.getUi().alert("It works !");
    }
//...

感谢您的帮助。

编辑:

HTML

<form id="filterForm" onSubmit="handleFormSubmitFilter(this)">
      <label for="licenseExpiration">License Expiration</label><br/>
      <input type="date" id="licenseExpiration" name="licenseExpiration"><br/><br/>
</form>

<script>
    function preventFormSubmitFilter() {

        var formsFilter = document.querySelectorAll('FormFilter');

        for (var i; i < formsFilter.length; i++) {
            formsFilter[i].addEventListener('submit',function(event) {
                event.preventDefault();
            });
        }
    }
    window.addEventListener('load',preventFormSubmitFilter);
  
    function handleFormSubmitFilter(formObject) {
        google.script.run.processFormFilter(formObject);
        document.getElementById("filterForm").reset();
    }
</script>
sgj00123 回答:将两个日期转换为字符串并比较它们

为了获得最佳结果,您需要在新的 Date 对象中传递“原始”日期。然后使用实用程序将其转换为字符串。提示:使用 console.log() 来(或更好地,调试器)查看您的输出。

  const licenseDate = Utilities.formatDate(new Date(formObject.licenseExpiration),Session.getScriptTimeZone(),"yyyy-MM-dd");
  const sheetDate = Utilities.formatDate(new Date(sheetDataRangeValues[0][7]),"yyyy-MM-DD");
  if (sheetDate == licenseDate || formObject.licenseExpiration == "") {
    console.log('it works')
  }
本文链接:https://www.f2er.com/1525.html

大家都在问