我正在嘗試查詢 5 小時前的時間的統計資訊。
當我運行這段代碼時,我在日志中看到本地時間是 6,所以我希望pastHour是 1,但它說的是 3。
為什么?

var HOURS_BACK = 5;
function main() {
var past = new Date(new Date().getTime() - HOURS_BACK * 3600 * 1000);
var pastHour = past.getHours();
var pastDateStr = getDateStringInTimeZone(past, 'yyyy-MM-dd');
query = "SELECT customer.id, metrics.impressions, segments.hour FROM customer WHERE metrics.impressions = 0 AND segments.hour = " pastHour " AND segments.date = '" pastDateStr "'";
Logger.log("query " query);
}
uj5u.com熱心網友回復:
編輯-我將在下面留下內容,但我現在認為問題中發布的內容無法解釋 OP 的奧秘。
請務必牢記 Date 值的作業方式。在內部,日期始終是相對于 UTC 的時間戳。也就是說,如果(假設地)你和世界各地的某個人同時呼叫new Date().getTime(),那么你們都會得到相同的時間戳。(顯然不可能,但想象一下你生活在卡通世界中。)
但是,日期 API 喜歡.getHours()在您的本地時間作業。本地時間和世界時間之間的差異一直讓很多人感到困惑,當您的日期/時間值隨后涉及資料庫操作時,情況只會變得更糟,同樣的問題可能會再次出現。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/407495.html
標籤:
