我有一列包含日期的“C”列,其中一些單元格值的值類似于“ Due on Date”。我已經撰寫了應用程式腳本代碼,如果單元格值包含“到期日”,它將被復制到另一列,否則復制到不同的列。但是在運行時我發現在運行日期和月份時具有“到期日”的單元格被互換. 例如:如果單元格包含“Due on 08/02/2022(dd/MM/yyyy)”,則更改為“02/08/2022(MM/dd/yyyy)”。有什么方法可以保留相同的日期格式嗎?我已經在電子表格中完成了日期格式的方法,并保持了相同的時區。這是示例代碼:
for(var i=value.length-1;i>=0;i--){
var chn = value[i];
if(chn[2]!="NA"){
// var rdate= new Date(chn[2]);
var dat=Utilities.formatDate(new Date(chn[2]), "GMT 5:30", "dd-MMMM-yyyy");
var mat= chn[2].toString();
if(mat.match(/Due on/)){
var d1= mat.replace("Due on", "");
var ds = new Date(dat);
var year = ds.getFullYear();
var month = ds.getDate();
var day = ds.getMonth();
Logger.log(chn[2]);
Logger.log(dat);
Logger.log(ds);
Logger.log(month);
// var pubdate = new Date(year, day,month);
// Logger.log(pubdate);
ss.getRange("C" (i 2)).setValue("Valid till " Utilities.formatDate(ds, "GMT 5:30", "dd-MMMM-yyyy"));
}
else{
.................
}
}
此處附有電子表格和執行日志的副本:

執行日志:
uj5u.com熱心網友回復:
您的代碼對我來說是正確的,但是這里有一些故障排除的想法
- 您沒有指定要寫入哪個作業表(我假設
ss是SpreadsheetApp.getActiveSpreadsheet())。當您的電子表格有多個作業表時,這很危險。最好起訴方法getSheetByName() - 將您的代碼片段簡化為更簡單的內容,以減少潛在的錯誤源
- 更改電子表格區域設定以更改日期格式
- 由于您的日期被連接到一個字串(并且方法formatDate()無論如何都會回傳一個日期),因此輸出不應受到任何語言環境和日期格式的影響,但可以肯定的是,請嘗試將其顯式設定為字串。
- 確保傳遞給
new Date()有效的日期物件或日期字串。
無論電子表格區域設定和單元格的數字格式如何,此代碼片段都適用于我:
function myFunction() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Sheet1");
for(var i = 10; i >= 0; i--){
var dat=Utilities.formatDate(new Date("2022-05-15"), "GMT 5:30", "dd-MMMM-yyyy");
ss.getRange("C" (i 2)).setValue(("Due on " dat).toString());
}
}
更新:
如果問題是原始日期字串的格式,則需要將其轉換為new Date()所需的格式。為此,您需要知道原始日期字串的格式。
對于格式為 的日期字串ddmmyyyy,您可以執行以下操作:
var chn = [];
chn[2] = "15052022";
var day = Number(chn[2].substring(0,2));
var month = Number(chn[2].substring(2,4));
var year = Number(chn[2].substring(4,8));
console.log("day: " day)
console.log("month: " month)
console.log("year: " year)
var dat= Utilities.formatDate(new Date(year, month - 1, day), "GMT 5:30", "dd-MMMM-yyyy");
ss.getRange("C2").setValue(("Due on " dat).toString());
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/410894.html
標籤:
