gpt4 book ai didi

javascript - nnnn-nnnn 形式的字符串在电子表格中显示为日期或以其他方式错误显示

转载 作者:行者123 更新时间:2023-11-28 06:08:44 25 4
gpt4 key购买 nike

我在测试环境中使用了一个脚本,通过从时间戳解析年份并填充响应索引来以编程方式创建跟踪号。

function setTrackingNumber(ss, lastRowInx, createDateColumn) //This block generates and stores a tracking number in Column AU on the backend
{
var padTrackNo = "" + lastRowInx;
var trackSize = 4;
var trackingNumberColumn = createDateColumn-3; //trackingNumberColumn is currently in AU (Column 47) Calculating using it's relative position to createDateColumn Position

if (ss.getRange(lastRowInx, trackingNumberColumn).getValue() == "") // so that subsequent edits to Google Form don't overwrite original tracking number
{
if (padTrackNo > trackSize)
{
var padTrackNo = pad(padTrackNo, trackSize);
}
else {} //do nothing

var shortYear = setShortYear(ss, lastRowInx, createDateColumn);
var trackingNumber = shortYear + "-" + padTrackNo;
var createTrackingNumber = ss.getRange(lastRowInx, trackingNumberColumn);
createTrackingNumber.setValue(trackingNumber);
}
else {} //should do nothing
return;
}//This is the end of the setTrackingNumber function

function setShortYear(ss, lastRowInx, createDateColumn)
{
var newCreateDate = ss.getRange(lastRowInx,createDateColumn).getValue();
var strDate = "" + newCreateDate;
var splitDate = strDate.split(" ");
var trimYear = splitDate[3];
var shortYear = trimYear;

return shortYear;
}//This is the end of the shortYear function

function pad(padTrackNo, trackSize)
{
while (padTrackNo.length < trackSize)
{
padTrackNo = "0"+padTrackNo;
}
return padTrackNo;
}//This is the end of pad function

这让我很感动test result正如预期的那样。 2016-0005。然而,当我们将其添加到另一个生产表时,它似乎可以处理测试数据,然后生产数据显示为日期 2016 年 3 月 1 日。 production result - first cell

由于数字的原因,我认为它必须只是将字符串格式化为日期,因此我尝试将列格式化为纯文本,但这只是将日期更改为日期的纯文本版本。

我认为这可能类似于需要指定格式,就像我在这个问题 Appending initial timestamp from Google Form to end of record in order to permanently store create date onFormSubmit 中所做的那样根据 @SandyGood 的建议,我尝试通过更改将数字格式设置为 [0000-0000]

createTrackingNumber.setValue(trackingNumber);

createTrackingNumber.setValue(trackingNumber).setNumberFormat("0000-0000");

这导致[生产结果 - 第二个单元格]再次与预期结果不匹配。

奇怪的是,一些提交似乎工作得很好,如[生产结果 - 第三个单元格]。在过去的 3 天里,大约有 10 条记录,情况一直很好,然后很不稳定,然后又很好,他们很不稳定,然后又很好。我不太确定还有什么可以尝试调试这种奇怪的行为。

注意:我必须将日期解析为字符串,因为我无法从初始时间戳中获取的创建日期正确解析日期。

最佳答案

据我了解,“2016-0005”不是数字而是字符串,因此包含它的单元格应格式化为纯文本。使用脚本,可以通过

来完成
range.setNumberFormat('@STRING@') 

( source ),并且必须在将值设置到单元格之前完成。像这样:

createTrackingNumber.setNumberFormat('@STRING@').setValue(trackingNumber);

关于javascript - nnnn-nnnn 形式的字符串在电子表格中显示为日期或以其他方式错误显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36607578/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com