Google apps script Google Sheets应用程序脚本中的日期差异错误

Google apps script Google Sheets应用程序脚本中的日期差异错误,google-apps-script,google-sheets,Google Apps Script,Google Sheets,在Googlesheets的“Sheet1”中,日期是在A列中手动输入的。 当我在a列中输入日期时,B列应该填入新日期()和刚在a列中输入的日期之间的差值 到目前为止,我已经尝试了以下代码: function onEdit() { var s2=SpreadsheetApp.getActive().getSheetByName("Sheet1"); var lastRow=s2.getLastRow(); var entry_date =s2.getRange(la

在Googlesheets的“Sheet1”中,日期是在A列中手动输入的。 当我在a列中输入日期时,B列应该填入新日期()和刚在a列中输入的日期之间的差值

到目前为止,我已经尝试了以下代码:

function onEdit() {
     var s2=SpreadsheetApp.getActive().getSheetByName("Sheet1");
     var lastRow=s2.getLastRow();
     var entry_date =s2.getRange(lastRow, 1).getValue();
     var now = new Date();
     var diff = now-entry_date;
     s2.getRange(lastRow, 2).setValue(diff);
    }

然而,B列给出了非常随机的结果,我无法理解。我只需要在同一行的B列中填写日期差。

您觉得结果很奇怪,因为您希望它以天为单位(工作表显示的方式),但脚本以毫秒为单位显示结果。要在几天内获得答案,请尝试以下操作:

function onEdit() {
  var s2 = SpreadsheetApp.getActive().getSheetByName("Sheet1");
  var lastRow = s2.getLastRow();
  var entry_date = s2.getRange(lastRow, 1).getValue();
  var now = new Date();
  var diff = (now-entry_date) / (24 * 60 * 60 * 1000); // Divide by number of milliseconds in a day
  s2.getRange(lastRow, 2).setValue(diff);
}
function onEdit() {
  var s2 = SpreadsheetApp.getActive().getSheetByName("Sheet1");
  var lastRow = s2.getLastRow();
  var entry_date = s2.getRange(lastRow, 1).getValue();
  var now = new Date();
  var diff = (now-entry_date) / (24 * 60 * 60 * 1000); // Divide by number of milliseconds in a day
  diff = Math.floor(diff); // Round down
  s2.getRange(lastRow, 2).setValue(diff);
}
这将为您提供一个类似于
3.4567
(天+以毫秒为单位的一天分数)的输出

要将其四舍五入到天数,您可以尝试以下方法:

function onEdit() {
  var s2 = SpreadsheetApp.getActive().getSheetByName("Sheet1");
  var lastRow = s2.getLastRow();
  var entry_date = s2.getRange(lastRow, 1).getValue();
  var now = new Date();
  var diff = (now-entry_date) / (24 * 60 * 60 * 1000); // Divide by number of milliseconds in a day
  s2.getRange(lastRow, 2).setValue(diff);
}
function onEdit() {
  var s2 = SpreadsheetApp.getActive().getSheetByName("Sheet1");
  var lastRow = s2.getLastRow();
  var entry_date = s2.getRange(lastRow, 1).getValue();
  var now = new Date();
  var diff = (now-entry_date) / (24 * 60 * 60 * 1000); // Divide by number of milliseconds in a day
  diff = Math.floor(diff); // Round down
  s2.getRange(lastRow, 2).setValue(diff);
}

结果在您看来很奇怪,因为您希望它在几天内出现(工作表显示的方式),但脚本以毫秒为单位显示结果。要在几天内获得答案,请尝试以下操作:

function onEdit() {
  var s2 = SpreadsheetApp.getActive().getSheetByName("Sheet1");
  var lastRow = s2.getLastRow();
  var entry_date = s2.getRange(lastRow, 1).getValue();
  var now = new Date();
  var diff = (now-entry_date) / (24 * 60 * 60 * 1000); // Divide by number of milliseconds in a day
  s2.getRange(lastRow, 2).setValue(diff);
}
function onEdit() {
  var s2 = SpreadsheetApp.getActive().getSheetByName("Sheet1");
  var lastRow = s2.getLastRow();
  var entry_date = s2.getRange(lastRow, 1).getValue();
  var now = new Date();
  var diff = (now-entry_date) / (24 * 60 * 60 * 1000); // Divide by number of milliseconds in a day
  diff = Math.floor(diff); // Round down
  s2.getRange(lastRow, 2).setValue(diff);
}
这将为您提供一个类似于
3.4567
(天+以毫秒为单位的一天分数)的输出

要将其四舍五入到天数,您可以尝试以下方法:

function onEdit() {
  var s2 = SpreadsheetApp.getActive().getSheetByName("Sheet1");
  var lastRow = s2.getLastRow();
  var entry_date = s2.getRange(lastRow, 1).getValue();
  var now = new Date();
  var diff = (now-entry_date) / (24 * 60 * 60 * 1000); // Divide by number of milliseconds in a day
  s2.getRange(lastRow, 2).setValue(diff);
}
function onEdit() {
  var s2 = SpreadsheetApp.getActive().getSheetByName("Sheet1");
  var lastRow = s2.getLastRow();
  var entry_date = s2.getRange(lastRow, 1).getValue();
  var now = new Date();
  var diff = (now-entry_date) / (24 * 60 * 60 * 1000); // Divide by number of milliseconds in a day
  diff = Math.floor(diff); // Round down
  s2.getRange(lastRow, 2).setValue(diff);
}

你说的“差异”是什么意思?这两个日期之间的天数是多少?是的。两个日期之间的天数,确切地说是天、小时、分钟和秒。如果它给出的结果是1.2545天,那么就完全可以了。事实上,它给了我-3899515528,,,令我非常惊讶。你知道你可以用公式解决这个问题吗?例如,没有脚本?是的,我知道。但出于某种原因,我必须使用脚本来实现这一点。你所说的“差异”是什么意思?这两个日期之间的天数是多少?是的。两个日期之间的天数,确切地说是天、小时、分钟和秒。如果它给出的结果是1.2545天,那么就完全可以了。事实上,它给了我-3899515528,,,令我非常惊讶。你知道你可以用公式解决这个问题吗?例如,没有脚本?是的,我知道。但出于某种原因,我必须使用脚本来完成这项工作。