2012-11-21 79 views
0

有沒有人有一個想法,爲什麼這個簡單的代碼不起作用?:設置時間不工作

var formattedSched = new Date(sched).setHours(15); 

我只是想一時間在谷歌日曆添加到日曆事件通過Google Apps腳本。我甚至在w3頁面上使用基本相同的樣本來設置小時。 http://www.w3schools.com/jsref/jsref_sethours.asp

但每次我運行該腳本來創建谷歌日曆事件,我得到的是谷歌認爲它是一個數字,而不是一個日期對象的錯誤消息。它沒有setHours(),但與它一起工作正常,谷歌認爲這是一個數字。由於

更新:好吧,我打出了一個測試功能,試圖記錄發生的事情:

function testsetcal() { 

    var formattedSched = new Date(); Logger.log(formattedSched.setHours(15)) 

    CalendarApp.getDefaultCalendar() 
    .createEvent('Commo', formattedSched, formattedSched); 
} 

和樵夫結果沒有調用setHours是:Wed Nov 21 08:12:33 PST 2012

記錄儀結果調用setHours是:1.35352881266E12,看起來一點都不像W3頁的示例結果。

更新:仍無法正常工作,並得到相同的結果記錄儀與主變量分離,調用setHours:1.35352881266E12

function testsetcal() { 

    var formattedSched = new Date(); 
    var withHours = formattedSched.setHours(15); 

    Logger.log(withHours); 

    CalendarApp.getDefaultCalendar() 
    .createEvent('Commo', withHours, withHours); 
} 

UPDATE:好了哇 - 這是奇怪的。我去我的谷歌日曆刪除所有的測試事件,至少只是我認爲是成功的。後來我發現,有莫特比我想象中有的被設置爲1500 - 然後我又回到了代碼,並發現,調用setHours()在谷歌日曆的外面是這樣的創建事件:

function testsetcal() { 
    var formattedSched = new Date(); 

    formattedSched.setHours(15); 

    Logger.log(formattedSched.setHours(15)); 

    CalendarApp.getDefaultCalendar() 
    .createEvent('Commo', formattedSched, formattedSched); 
} 

因此,該代碼設置小時至1500,但代碼的那部分是不包括在創建活動。完全令我驚訝,但這似乎是解決方案。

+0

什麼是SCHED?看起來你的Date對象沒有正確構造。我不同意這兩個答案,即有必要將這兩個陳述分開。 – Srik

+0

我剛剛發佈了一個更新的簡化測試代碼 - 相比,W3頁面越來越怪異的結果。如果從變量事務中分離出來,我會感到驚訝,但是要給它一個鏡頭並報告返回 – user1783229

+0

是的,沒有工作 - 嘗試所有不同類型的格式在這裏和那裏,但谷歌仍然認爲結果是一個數字,而不是一個日期對象 - 這應該是如此簡單 – user1783229

回答

0

不完全是,你正在返回調用setHours應對變種,儘量

var formattedSched = new Date(sched); 
formattedSched.setHours(15); 
+0

似乎並沒有工作,雖然 – user1783229

0

你需要將其分離出來作爲你引用的例子。

var formattedSched = new Date(sched); 
formattedSched.setHours(15); 

你試圖實現已經沒有被創建的日期對象的setHours()

+0

謝謝我會盡力 – user1783229

+0

似乎沒有工作,雖然 – user1783229

0

想我應該繼續前進,並關閉了這一點。感謝您的回覆。這對我的作品的代碼來獲得一個事件到克卡與時間:

function testsetcal() { 
    var formattedSched = new Date(); 

    formattedSched.setHours(15); 

    Logger.log(formattedSched.setHours(15)); 

    CalendarApp.getDefaultCalendar() 
    .createEvent('Commo', formattedSched, formattedSched); 
} 

.setHours必須.createEvent之外。

+0

,我不能檢查我自己的答案2天,fyi,出於某種原因 – user1783229