Ввод даты без времени - PullRequest
0 голосов
/ 31 января 2019

Используя приведенный ниже код, страница Google вводит дату в столбец 6 при редактировании ячейки в столбце 1.Он также включает метку времени.

Как изменить этот код, чтобы ввести только дату (день-месяц-год)?Это позволит выполнять поиск по дате на листе.

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

Ответы [ 2 ]

0 голосов
/ 31 января 2019

Спасибо всем - попробовал формат и т. Д., Но затем просто решил добавить столбец и разделить дату и время, просто указав дату в новом столбце.

0 голосов
/ 31 января 2019

Вы можете попробовать использовать 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), чтобы установить формат даты или числа.Принятые шаблоны форматов описаны в документации Sheets API .И пример использования:

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

var cell = sheet.getRange("B2");
// Always show 3 decimal points
cell.setNumberFormat("0.000");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...