簡體   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