сценарий приложения Google Не удается найти функцию getFullYear в объекте

В моем коде есть такая строка:

var now = Utilities.formatDate (новая дата (), SpreadsheetApp.getActive (). getSpreadsheetTimeZone (), «EEE MMM d yyyy HH: mm: ss»);

Но я получил ошибку, когда попытался получить год с этого момента.

var yearnow = now.getFullYear ();

Ошибка: «TypeError: не удается найти функцию getFullYear в объекте, среда, 5 апреля 2017 г., 09:56:26».

Есть ли способ исправить это?

Заранее спасибо!!


person Jona    schedule 05.04.2017    source источник


Ответы (1)


Utilities.formatDate возвращает строку. Он не возвращает объект даты, такой как new Date () javascript, поэтому вы получаете эту ошибку.

Вы можете сделать что-то вроде этого, чтобы получить свой год и сохранить свой формат в строке now

var now= Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "EEE MMM d yyyy HH:mm:ss");
var dt = new Date(now)  // This not the same as new Date()
var year = dt.getFullYear()

Надеюсь, это поможет!

Редактировать

Используя функцию ниже:

function getDate(){
 var now= Utilities.formatDate(new Date(), SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "EEE MMM d yyyy HH:mm:ss");
 var dt = new Date(now)
 Logger.log(now)
 Logger.log(dt.getFullYear())
 Logger.log(dt.getDate())
 Logger.log(dt.getMonth() + 1) //add 1 to compensate for the month index starting at 0, i.e Jan = 0, Feb =1, March = 2.... Dec = 11
}

Я получаю этот журнал

[17-04-04 20:35:03:355 CDT] Tue Apr 4 2017 20:35:03
[17-04-04 20:35:03:355 CDT] 2017.0
[17-04-04 20:35:03:356 CDT] 4.0
[17-04-04 20:35:03:356 CDT] 4.0

Который, как вы можете видеть, сохраняет дату, год и месяц, как в строке now, установленной в первой строке кода.

person Jack Brown    schedule 05.04.2017
comment
Спасибо!! Но в этом случае я не могу сохранить свой часовой пояс. Используется часовой пояс по умолчанию. Как я могу указать день, месяц и год в моем часовом поясе? - person Jona; 05.04.2017
comment
Я заблудился! Новый объект даты создается с использованием переменной var now, поэтому он сохранит дату, месяц и год строки now. Не уверен, как по умолчанию используется часовой пояс по умолчанию! - person Jack Brown; 05.04.2017
comment
Это верно!! Большое спасибо. Я использовал функцию getDay (), поэтому у меня не было подходящего дня. - person Jona; 05.04.2017