Kesalahan menjalankan pemicu pada waktu tertentu menggunakan GAS

Saya mendapatkan pesan kesalahan (di bawah) ketika saya menjalankan kode. Niat saya adalah membuat pemicu pada waktu yang tepat 03-04-2017 20:10

ScriptApp.newTrigger('myfunction').timeBased().atDate(2017,04,03).atHour(20).nearMinute(10).create();

Catatan

[17-04-02 20:16:53:455 IST] TriggerBuilder.timeBased() [0 seconds]
[17-04-02 20:16:53:456 IST] ClockTriggerBuilder.atDate([2017, 4, 3]) [0 seconds]
[17-04-02 20:16:53:456 IST] ClockTriggerBuilder.atHour([20]) [0 seconds]
[17-04-02 20:16:53:461 IST] Execution failed: Error: Already chosen a specific date time with at() or atDate(). (line 109, file "Code") [11.583 seconds total runtime]

person Code Guy    schedule 02.04.2017    source sumber
comment
Saya menemukan tautan ini. Saya kira Anda tidak dapat menggunakan klausa multiple at.   -  person Cooper    schedule 02.04.2017
comment
Itu berarti kita tidak dapat membuat pemicu bertipe tanggal dengan waktu. Jika saya menentukan tanggal berarti akan dipicu pada tengah malam?   -  person Code Guy    schedule 02.04.2017
comment
Saya kira Anda bisa membuat pemicu yang menjalankan skrip lain yang membuat pemicu lain. Tapi ya, aku berharap Sandy salah tentang itu tapi aku agak meragukannya.   -  person Cooper    schedule 02.04.2017
comment
Tapi itu mungkin dari editor skrip bukan? Sekali waktu   -  person Code Guy    schedule 02.04.2017
comment
Dari UI di editor skrip sepertinya Anda dapat menggunakan objek datetime.   -  person Cooper    schedule 02.04.2017


Jawaban (1)


Anda dapat membuat objek tanggal baru dengan tanggal dan waktu tertentu lalu menggunakan trigger().At(date), jangan bingung dengan atDate(), berfungsi untuk membuat trigger pada tanggal dan waktu tersebut.

var dt = new Date(2017,03,03,20,10)
//Month index starts from 0 i.e. Jan =0,Feb=1... So on
 ScriptApp.newTrigger('myFunction').timeBased().at(dt).create()

Semoga itu bisa membantu!

person Jack Brown    schedule 02.04.2017
comment
Terima kasih banyak @Jack Brown. Jika saya ingin mengetahui secara terprogram apakah pemicu dibuat tanpa kesalahan, bagaimana caranya? Karena jika saya memberikan tanggal sebagai 2017,02,31,20,17 trigonometri akan dibuat dengan id uniq tetapi sebenarnya tidak karena tanggalnya salah . - person Code Guy; 03.04.2017
comment
Sebenarnya (2017,02,31,20,17) adalah tanggal 31 Maret yang merupakan tanggal yang valid. Untuk bulan Februari Anda akan melakukan Tanggal baru ini (2017,01,31,20,17) yang akan secara otomatis disetel ke tanggal 03-03-2017 berikutnya 20:17. Anda dapat membacanya di sini . Anda harus menentukan secara terprogram apakah nilai yang Anda masukkan dalam fungsi tanggal cocok dengan apa yang dibuat menggunakan getFullYear(), getMonth(), getDay() dll. - person Jack Brown; 03.04.2017