Добавление 5 часов в сценарий для удаления старых файлов даты (GAS - Google Drive) - PullRequest
1 голос
/ 22 октября 2019

Я пытаюсь добавить 5 часов к моему сценарию, потому что там, где я ищу данные, местное время на 5 часов больше, чем где я живу. Поэтому для синхронизации даты мне нужно добавить.

function getOldFileIDs() {
  var folder = DriveApp.getFolderById('XXXXXXXXXXXXXXXXXXXXXXX');
  var files = folder.getFiles();
  var today = new Date(new Date().toDateString()).getTime()+ 1000*60*60*5;
  var obj = [];
  while (files.hasNext()) {
    var file = files.next();
    var dateFromFilename = file.getName().substr(0, 10);
    if (/\d{4}\/\d{2}\/\d{2}/.test(dateFromFilename)) { // Here, the format of date string is checked.
      var date = new Date(dateFromFilename).getTime();
      if (date < today) {
        obj.push({id: file.getId(), date: file.getDateCreated(), owner: file.getOwner().getEmail()});
      }
    }
  }
  return obj;
};

function deleteFiles() {
  var email = "XXXXXXXXXXXXXXXX@gmail.com"; // Added
  var obj = getOldFileIDs(); // Modified
  obj.forEach(function(e) { // Modified
    if (e.owner == email) { // Added
      Drive.Files.remove(e.id); // Modified
    }
  });
};
´´´

today is this way, but it didn't work, I would like to know what is the failure in the form I'm trying to do

1 Ответ

1 голос
/ 22 октября 2019
  • Вы хотите сместить время, которое используется для сравнения, на 5 часов.
  • С /\d{4}\/\d{2}\/\d{2}/.test(dateFromFilename) в вашем сценарии обнаруживается, что только год, месяц и деньИмя файла сравнивается.

Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких ответов.

Точки модификации:

  • В вашем сценарии сравниваются год, месяц и день. Таким образом, из даты, сдвинутой на 5 часов от текущего времени, необходимо использовать год, месяц и день.
  • toDateString() извлекает год, месяц и день, когда время становится 00:00:00.

Когда указанная точка отражается в вашем сценарии, она становится следующей:

Измененный сценарий:

От:
var today = new Date(new Date().toDateString()).getTime()+ 1000*60*60*5;
До:
var shift = new Date().getTime() + 1000*60*60*5
var today = new Date(new Date(shift).toDateString()).getTime();

Ссылка:

Если я неправильно понял ваш вопрос и это не тот результат, который вам нужен, я приношу свои извинения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...