繁体   English   中英

输入没有时间的日期

[英]Inputting Date without time

使用下面的代码,当编辑第 1 列中的单元格时,Google 表格会在第 6 列中输入日期。 它还包括时间戳。

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

  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);
}

您可以尝试使用Utilities.formatDate 此方法根据Java SE SimpleDateFormat类中描述的规范格式化日期。 您可以在此处访问日期和时间模式。 用法示例如下:

// 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具有以下效果在此指出的帖子

  1. Utilities.formatDate不会更改单元格格式; 它将其内容转换为文本。 如果要在计算中使用日期值,则不希望将其转换为文本。
  2. Utilities.formatDate需要一个来指定时区。 如果您输入“ GMT + 1”之类的字词,并且您所在的国家/地区遵守夏令时,则可能会在几个月后出现难以跟踪的错误。 使用setNumberFormat时,日期值与电子表格中的所有其他日期值保持一致,这取决于其时区设置。

为避免这些情况,还可以使用setNumberFormat(numberFormat)设置日期或数字格式。 表格API文档中描述了可接受的格式模式。 用法示例是:

var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];

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

谢谢大家-尝试过格式等,但随后决定添加一列并拆分日期和时间,仅将日期放入新列中。

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');
}

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

setValue(new Date(new Date().setHours(0,0,0,0))).setNumberFormat('MM/dd/yyyy');

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM