我有一系列日期。我想回傳 2022 年 1 月 1 日到 2022 年 12 月 31 日之間的日期。
當我在下面運行剪切時,它不會回傳任何內容。這是我嘗試過的許多不同的回圈變體之一。請幫助 TIA
var start = new Date(2022, 0, 01); //returns Sat Jan 01 00:00:00 GMT-06:00 2022
var end = new Date(2022, 11, 01); //returns Sat Dec 31 00:00:00 GMT-06:00 2022
var arr = [Fri Dec 03 2021 00:00:00 GMT-0600 (Central Standard Time),
Fri Dec 10 2021 00:00:00 GMT-0600 (Central Standard Time),
Fri Dec 17 2021 00:00:00 GMT-0600 (Central Standard Time),
Fri Dec 24 2021 00:00:00 GMT-0600 (Central Standard Time),
Fri Dec 31 2021 00:00:00 GMT-0600 (Central Standard Time),
Fri Jan 07 2022 00:00:00 GMT-0600 (Central Standard Time),
Fri Jan 14 2022 00:00:00 GMT-0600 (Central Standard Time),
Fri Jan 21 2022 00:00:00 GMT-0600 (Central Standard Time),
Fri Jan 28 2022 00:00:00 GMT-0600 (Central Standard Time),
...](**output** NOT the actual script)
for(var i=0; i<=arr.length; i ){
if(arr[i] >= start && arr[i] <= end){
Logger.log(arr[i]);
}
}
uj5u.com熱心網友回復:
修改點:
- 從您的腳本中,我無法理解
arr. 因為在你的腳本中,當你保存腳本時,會發生錯誤。所以我擔心您的實際腳本與您的演示腳本不同。如果 的每個值arr都是類似的字串型別Fri Dec 03 2021 00:00:00 GMT-0600 (Central Standard Time),請用雙引號或單引號將其括起來。- 如果我對您的腳本的猜測不正確,請提供您的實際腳本。
- 為了比較日期,我認為這個執行緒會很有用。參考
當這些點反映在你的腳本中時,它變成如下。
修改后的腳本:
var start = new Date(2022, 0, 01); //returns Sat Jan 01 00:00:00 GMT-06:00 2022
var end = new Date(2022, 11, 01); //returns Sat Dec 31 00:00:00 GMT-06:00 2022
var arr = [
"Fri Dec 03 2021 00:00:00 GMT-0600 (Central Standard Time)",
"Fri Dec 10 2021 00:00:00 GMT-0600 (Central Standard Time)",
"Fri Dec 17 2021 00:00:00 GMT-0600 (Central Standard Time)",
"Fri Dec 24 2021 00:00:00 GMT-0600 (Central Standard Time)",
"Fri Dec 31 2021 00:00:00 GMT-0600 (Central Standard Time)",
"Fri Jan 07 2022 00:00:00 GMT-0600 (Central Standard Time)",
"Fri Jan 14 2022 00:00:00 GMT-0600 (Central Standard Time)",
"Fri Jan 21 2022 00:00:00 GMT-0600 (Central Standard Time)",
"Fri Jan 28 2022 00:00:00 GMT-0600 (Central Standard Time)",
];
for (var i = 0; i <= arr.length; i ) {
if (new Date(arr[i]).getTime() >= start.getTime() && new Date(arr[i]).getTime() <= end.getTime()) {
console.log(arr[i]);
}
}
參考:
- 相關執行緒
- 用 JavaScript 比較兩個日期
uj5u.com熱心網友回復:
Tanaike提到的是正確的,它應該是你的陣列中的一個字串并且缺少引號然后你可以做
arr.filter(dates => new Date(dates) >= start && new Date(dates) <= end );
uj5u.com熱心網友回復:
感謝您的輸入,我能夠弄清楚。問題是我需要將 arr[i] 設定為 new Date(arr[i])。以下是更新后的代碼。
var start = new Date(2022, 0, 01); //returns Sat Jan 01 00:00:00 GMT-06:00 2022
var end = new Date(2022, 11, 01); //returns Sat Dec 31 00:00:00 GMT-06:00 2022
var arr = [Fri Dec 03 2021 00:00:00 GMT-0600 (Central Standard Time),
Fri Dec 10 2021 00:00:00 GMT-0600 (Central Standard Time),
Fri Dec 17 2021 00:00:00 GMT-0600 (Central Standard Time),
Fri Dec 24 2021 00:00:00 GMT-0600 (Central Standard Time),
Fri Dec 31 2021 00:00:00 GMT-0600 (Central Standard Time),
Fri Jan 07 2022 00:00:00 GMT-0600 (Central Standard Time),
Fri Jan 14 2022 00:00:00 GMT-0600 (Central Standard Time),
Fri Jan 21 2022 00:00:00 GMT-0600 (Central Standard Time),
Fri Jan 28 2022 00:00:00 GMT-0600 (Central Standard Time),
...](**output of the array** NOT the actual script)
for(var i=0; i<=arr.length; i ){
var arrI = new Date(arr[i]);
if(arrI >= start && arrI <= end){
Logger.log(arrI);
}
}
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/410684.html
標籤:
