Попытка вычесть 5 дней из определенной даты - Google App Script

Я пытаюсь написать сценарий, который должен отправить электронное письмо и создать две записи календаря при отправке формы. Честно говоря, это мой первый сценарий, и я очень рад, что электронное письмо отправлено, и записи календаря также работают. То, что вызывает у меня головную боль, - это вычесть 5 дней (фактически х дней) из определенной даты.

Сначала я подумал, что могу просто сделать что-то вроде

var liveday = e.values[2];
var newday = liveday-5;

ну, это не сработало:-)

Я попробовал больше:

var newtime = new Date(liveday);
var yr = newtime.getYear();
var dt = newtime.getDay();
var mt = newtime.getMonth();
var dtnew = dtnew.setDate(mt, dt-5, yr);

Но здесь я получил 1418256000000 тогда как liveday = 12/01/2014. Не уверен, почему дни были добавлены, а не вычтены.

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

Я просто хочу вычесть 5 дней с 01.12.2014, чтобы получить 27.11.2014.

Спасибо, что посмотрели

1 ответ

Решение

Комментарий отправляет вас в довольно сложную серию кодов... есть гораздо более простой способ получить это, вот код:

function test() {
  Logger.log('today= '+new Date()+'  and 5 days ago is '+subDaysFromDate(new Date(),5));
}

function subDaysFromDate(date,d){
  // d = number of day ro substract and date = start date
  var result = new Date(date.getTime()-d*(24*3600*1000));
  return result
}

Результат логгера:

[13-11-18 23:39:50:364 CET] today= Mon Nov 18 2013 23:39:50 GMT+0100 (CET)  and 5 days ago is Wed Nov 13 2013 23:39:50 GMT+0100 (CET)

если вы хотите получить дату в виде дд / мм / гггг используйте Utilities.formatDate(date, timeZone, 'dd/MM/yyyy)смотри документ здесь

Другие вопросы по тегам