Convert two dates to String and compare them

Solution for Convert two dates to String and compare them
is Given Below:

I want to compare two dates and make something if they are equal.

The first date come from a google sheet. The cell format is a date and the localization is at France (GMT+1).
The second date come from an HTML form date field filled by the user.

I want to compare the strings in the yyyy–MM–dd format, so I used the function Utilities.format().
When I display the string values, everything seems to be okay.

But when the string comparison doesn’t work. It’s probably a conversion issue. I did some tests, nothin works.

Here’s a part of my code

  } 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, "GMT+1", "yyyy-MM-dd") == Utilities.formatDate(sheetDataRangeValues[0][7], "GMT+1", "yyyy-MM-dd") || formObject.licenseExpiration == "") {
      SpreadsheetApp.getUi().alert("It works !");

Thanks for your help.



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

    function preventFormSubmitFilter() {

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

        for (var i; i < formsFilter.length; i++) {
            formsFilter[i].addEventListener('submit', function(event) {
    window.addEventListener('load', preventFormSubmitFilter);
    function handleFormSubmitFilter(formObject) {;

For the best result you need pass the “raw” date in a new Date object. Then use the Utilities to convert this to a string. Tip: use console.log() to (or better, the debugger) see your output.

  const licenseDate = Utilities.formatDate(new Date(formObject.licenseExpiration), Session.getScriptTimeZone(), "yyyy-MM-dd");
  const sheetDate = Utilities.formatDate(new Date(sheetDataRangeValues[0][7]), Session.getScriptTimeZone(), "yyyy-MM-DD");
  if (sheetDate == licenseDate || formObject.licenseExpiration == "") {
    console.log('it works')