Date() 顯示正確的日期,而 getDay() 顯示不正確的值。
function Test()
{
const date = new Date();
const dateToday = Utilities.formatDate(new Date(), "GMT 8", "MM/dd/YYYY");
const dateYesterday = Utilities.formatDate(new Date(new Date().setDate(date.getDate() - 1)), "GMT 8", "MM/dd/YYYY");
var day = date.getDay();
var a = SpreadsheetApp.getActiveSheet().getRange(3, 2);
switch (day)
{
case 1:
day = "Sunday";
break;
case 2:
day = "Monday";
break;
case 3:
day = "Tuesday";
break;
case 4:
day = "Wednesday";
break;
case 5:
day = "Thursday";
break;
case 6:
day = "Friday";
break;
case 7:
day = "Saturday";
}
a.setValue("Today is " day " " dateToday ". Yesterday was " dateYesterday);
}
當此代碼在 Google Sheet 中執行時,它將輸出如下:今天是 2022 年 4 月 21 日星期二。昨天是 04/20/2022
日期是正確的,而日期顯示的星期二是不正確的。現在是星期四。
uj5u.com熱心網友回復:
作為另一種方法,在您的情況下,如何進行以下修改?
修改后的腳本:
function sample() {
const date = new Date();
const dateToday = Utilities.formatDate(new Date(), "GMT 8", "MM/dd/YYYY");
const dateYesterday = Utilities.formatDate(new Date(new Date().setDate(date.getDate() - 1)), "GMT 8", "MM/dd/YYYY");
const day = Utilities.formatDate(new Date(), "GMT 8", "EEEE"); // Added
const a = SpreadsheetApp.getActiveSheet().getRange(3, 2);
a.setValue("Today is " day " " dateToday ". Yesterday was " dateYesterday);
}
Utilities.formatDate在此修改中,使用like檢索日期名稱Utilities.formatDate(new Date(), "GMT 8", "EEEE")。
參考:
- formatDate(日期,時區,格式)
uj5u.com熱心網友回復:
getDay() 方法根據當地時間回傳指定日期的星期幾,其中 0 表示星期日。
周日為 0,周一為 1,以此類推。
檔案
以及具有較少長度實作的示例:
const getDayofWeek = x => x === 0 ? 'Sunday' : x === 1 ? 'Monday' : x === 2 ? 'Tuesday' : x === 3 ? 'Wednesday' : x === 4 ? 'Thursday' : x === 5 ? 'Friday' : x === 6 ? 'Saturday' : "Invalid Day";
for (i = 0; i < 8; i ) {
console.log(getDayofWeek(i))
}
uj5u.com熱心網友回復:
嘗試
function test() {
const dayOfTheWeek = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]
const date = new Date();
console.log(dayOfTheWeek[date.getDay()])
}
const dayOfTheWeek = ["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]
const date = new Date();
console.log(dayOfTheWeek[date.getDay()])
最重要的是在您的腳本編輯器中檢查您的時區:轉到您的腳本編輯器,點擊左側的齒輪,選中第三個框,回傳腳本編輯器并在 appsscript.json 中查看,根據時區掛起到您的語言環境
uj5u.com熱心網友回復:
試試這種方式:
function Test() {
const dt = new Date();
const dateToday = Utilities.formatDate(new Date(), Session.getScriptTimeZone(), "MM/dd/yyyy");
const dateYesterday = Utilities.formatDate(new Date(dt.getFullYear(), dt.getMonth(), dt.getDate() - 1), Session.getScriptTimeZone(), "MM/dd/yyyy");
var d = dt.getDay();
var a = SpreadsheetApp.getActiveSheet().getRange(3, 2);
var day;
switch (d) {
case 0:
day = "Sunday";
break;
case 1:
day = "Monday";
break;
case 2:
day = "Tuesday";
break;
case 3:
day = "Wednesday";
break;
case 4:
day = "Thursday";
break;
case 5:
day = "Friday";
break;
case 6:
day = "Saturday";
}
Logger.log("Today is " day " " dateToday ". Yesterday was " dateYesterday)
a.setValue("Today is " day " " dateToday ". Yesterday was " dateYesterday);
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/459991.html
上一篇:如何從資料陣列中排除空元素?
下一篇:谷歌表格中的多列日期戳
