在谷歌腳本我有以下代碼:Utilities.formatDate返回錯誤的週數
var myDate = new Date(sheet.getRange(3,1).getValue());
var year = Utilities.formatDate(myDate, "Europe/Amsterdam", 'dd-MM-yyyy');
var weekyear = Utilities.formatDate(myDate, "Europe/Amsterdam", 'dd-MM-YYYY');
var week = Utilities.formatDate(myDate, "Europe/Amsterdam", 'w');
當我插入30-12-2015日期,結果將是。
// year: 30-12-2015
// weekyear: 30-12-201**6**
// week: 1
在我的本地時區,應該是週數53不是1 如果我calculate the week in ISO 8601,結果是52
奇怪,不是嗎?
編輯: 新的嘗試,與此代碼
var cursus_datum = sheet.getRange(3,1).getValue();
Logger.log('type of data: ' + typeof cursus_datum);
Logger.log(cursus_datum);
Logger.log(Utilities.formatDate(cursus_datum, SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "d-MM-y HH:mm"));
Logger.log(Utilities.formatDate(cursus_datum, SpreadsheetApp.getActive().getSpreadsheetTimeZone(), "w"));
這導致
// type of data: object
// Wed Dec 30 09:00:00 GMT+01:00 2015
// 30-12-2015 00:00 which is perfect
// 1 which is **not** correct.
錯誤的一週是的bug。
如果我使用鏈接到的JavaScript代碼,我得到了第52周的結果,而它應該是53.奇怪的是沒有人似乎有這個錯誤。 –
這[jsfiddle](https://jsfiddle.net/4926k18q/4/)的輸出是否正確? – Daniel
它應該這樣做。接下來,您可以簡單地將這些額外的日期方法複製到您自己的Google Apps Script .gs文件中(將它們放在頂層,而不是放在任何其他功能中),並在小提琴中使用它們。 – Daniel