我使用了一种方法来格式化Google Apps脚本中的日期,以便它只显示MMM dd, yyyy
。我试图用“”替换我的日期字符串中的所有“ - ”,但使用替换方法只替换字符串的第一个“ - ”而不替换其余的。有什么想法吗?如何让它替换我的字符串中的所有“ - ”?
这是我的代码:
function formatDate() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var dataSheet = ss.getSheets()[0];
var templateSheet = ss.getSheets()[1];
var dataRange = dataSheet.getRange(2, 1, dataSheet.getMaxRows() - 1, 9);
var data = dataRange.getValues();
var startRow = 2; // First row of data to process
var objects = getRowsData(dataSheet, dataRange);
//Format date in column D
for(var k=0; k<objects.length; k++){
var column = data[k];
var DateCell = column[4];
var emailSent = column[8];
var column = data[k];
var DateCell = column[4];
var date = new Date(DateCell).toLocaleDateString('en-US',{
day : 'numeric',
month : 'short',
year : 'numeric'
}).split("").join("-").replace(/-/g, "");
var Date1 = dataSheet.getRange(startRow + k, 5);
var Date2 = dataSheet.getRange(startRow + k, 6);
Date1.setValue(date);
Date2.setValue(date);
}
}
答案 0 :(得分:1)
这两个片段都有效。
var str = "testing-this-out";
var beforeEl = document.getElementById("before");
var afterEl = document.getElementById("after");
beforeEl.innerText = "Before: " + str;
afterEl.innerText = "After: " + str.replace(/([-])+/g, "");
<p id="before"></p>
<p id="after"></p>
var date = new Date("2017-01-11").toLocaleDateString('en-US',{
day : 'numeric',
month : 'short',
year : 'numeric'
}).split("").join("-").replace(/([-])/g, "");
document.getElementById("date").innerText = date;
<span id="date"></span>