首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >输入不带时间的日期

输入不带时间的日期
EN

Stack Overflow用户
提问于 2019-01-31 06:20:46
回答 3查看 1.1K关注 0票数 0

使用下面的代码,当编辑第一列中的单元格时,google工作表在第六列中输入日期。它还包括时间戳。

如何修改此代码,以便只输入日期(日-月-年)?这将允许在工作表上按日期进行搜索。

代码语言:javascript
运行
复制
  function onEdit(e) {
    var sheetName = 'Cases Allocation'; //name of the sheet the script should work on 
    var colToWatch = 1
    var colToStamp = 6 //timestamp in col A
    if (e.range.columnStart !== 1 || e.source.getActiveSheet()
        .getName() !== sheetName || e.value == '') return;
    var writeVal = e.value !== "" ? new Date(),: '';
    e.source.getActiveSheet()
        .getRange(e.range.rowStart, colToStamp)
        .setValue(writeVal);
}
EN

回答 3

Stack Overflow用户

发布于 2019-01-31 14:41:21

您可以尝试使用Utilities.formatDate。此方法根据Java类中描述的规范来格式化数据。你可以访问date and time patterns here。下面是一个用法示例:

代码语言:javascript
运行
复制
// This formats the date as Greenwich Mean Time in the format
// year-month-dateThour-minute-second.
var formattedDate = Utilities.formatDate(new Date(), "GMT", "yyyy-MM-dd'T'HH:mm:ss'Z'");
Logger.log(formattedDate);

请注意,使用Utilities.formatDate会产生以下效果,如本post所述

  1. Utilities.formatDate不会更改单元格格式;它会将其内容转换为文本。如果您要在计算中使用日期值,您不希望将其转换为text.
  2. Utilities.formatDate需要指定时区。如果您设置了类似"GMT+1“的内容,并且您的国家遵守夏令时,那么几个月后很难跟踪的bug就会出现。使用setNumberFormat时,日期值与电子表格中的所有其他日期值保持一致,由其时区设置控制。

要避免出现这种情况,还可以使用setNumberFormat(numberFormat)设置日期或数字格式。Sheets API documentation中描述了可接受的格式模式。一个示例用法是:

代码语言:javascript
运行
复制
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

var cell = sheet.getRange("B2");
// Always show 3 decimal points
cell.setNumberFormat("0.000");
票数 1
EN

Stack Overflow用户

发布于 2019-01-31 18:22:50

感谢所有尝试过的格式等,但随后决定添加一列,并将日期和时间分开,只将日期放入新列中。

票数 0
EN

Stack Overflow用户

发布于 2021-09-29 05:29:03

代码语言:javascript
运行
复制
function onEdit(e) {
    var sheetName = 'Cases Allocation'; //name of the sheet the script should work on 
    var colToWatch = 1
    var colToStamp = 6 //timestamp in col A
    if (e.range.columnStart !== 1 || e.source.getActiveSheet()
        .getName() !== sheetName || e.value == '') return;
    //var writeVal = e.value !== "" ? new Date(),: '';
    e.source.getActiveSheet()
        .getRange(e.range.rowStart, colToStamp)
        .setValue(new Date(new Date().setHours(0,0,0,0))).setNumberFormat('MM/dd/yyyy');
}

下面的代码将不带时间地保存日期。您可以根据需要更改格式。该字段仍然是可以根据需要使用的日期。

代码语言:javascript
运行
复制
setValue(new Date(new Date().setHours(0,0,0,0))).setNumberFormat('MM/dd/yyyy');
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54450439

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档