Google Sheet Script - Разница в датах - Текущая дата () - Дата () в электронной таблице - PullRequest
0 голосов
/ 11 марта 2019

Я пытаюсь вычислить даты в моих данных - СЕЙЧАС () (текущая дата) в днях

Так

Dates           Today              Days difference

2019-01-01     2019-03-11            X
2019-02-01     2019-03-11            X 

и я бы хотел, чтобы сегодня обновлялся каждый день

Есть ли способ сделать это в скрипте, чтобы "Разница дней" могла ежедневно обновляться автоматически?

Также возможно ли выделить какие-либо строки красным цветом, которые больше 100 дней?

1 Ответ

1 голос
/ 11 марта 2019

Googlescripts, кажется, использует даты, которые в основном совпадают с датами javascript, поэтому вы должны иметь возможность сделать что-то вроде этого:

    var dateFromFirstColumn = new Date("2019-01-01"); 
    var now = new Date();
    var today = new Date(
        now.getFullYear(),
        now.getMonth(),
        now.getDate(),
        0,0,0); // Midnight last night, since presumably the first date is similar
    var todayString = today.toLocaleString(); // Can be written to second column
    var diff = today.getTime() - dateFromFirstColumn.getTime();
    var millisecondsInADay = 1000 * 60 * 60 * 24;
    var diffInDays = Math.floor(diff/millisecondsInADay);

    console.log(diffInDays);

Не могу с уверенностью сказать, что googlescripts поддерживает Math.floor () и тому подобное, но это должно приблизить вас.

Предполагается, что автоматическийформатирование .toLocaleString не то, что вам нужно, вы можете использовать методы .getFullYear, .getMonth и .getDate (и дополнять любые однозначные дни начальным нулем), а затем объединять результаты в YYYY-MM-DD формат.(Обратите внимание, что январь - это номер месяца ноль при преобразовании номеров месяцев в текст.)

См. https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date и
https://developers.google.com/google-ads/scripts/docs/features/dates для получения дополнительной информации.

...