【问题标题】:Get today date in google appScript在谷歌 appScript 中获取今天的日期
【发布时间】:2014-09-13 16:51:53
【问题描述】:

如何在 google appscript 上获取今天的日期?

我需要编写代码来在单元格中输入今天的日期。

function changeDate(){
  var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(GA_CONFIG);
  var date = //Today´s date!?!?!!?
  var endDate = date;

  sheet.getRange(5, 2).setValue(endDate);

 }

【问题讨论】:

    标签: google-apps-script


    【解决方案1】:

    Google Apps 脚本是 JavaScript,日期对象以 new Date() 启动,所有 JavaScript 方法都适用,see doc here

    【讨论】:

      【解决方案2】:
      Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy")
      

      您可以通过交换值来更改格式。

      • dd = day(31)
      • MM = 月 (12) - 区分大小写
      • yyyy = 年(2017 年)
      function changeDate() {
          var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(GA_CONFIG);
          // You could use now Date(); on its own but it will not look nice.
          var date = Utilities.formatDate(new Date(), "GMT+1", "dd/MM/yyyy")
          var endDate = date
      }
      

      【讨论】:

      • 这不是一个好主意,Utilities.formatDate() 返回的值是一个字符串,而不是一个日期对象......你将无法用它做任何事情......改变显示在单元格中设置格式,同时保持日期对象属性使用setNumberFormat(numberFormat) 进行完整解释,同时使用this doc
      【解决方案3】:

      Date 对象用于处理日期和时间。

      日期对象是用new Date()创建的

      var now = new Date();
      

      now - 当前日期和时间对象。

      function changeDate() {
          var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(GA_CONFIG);
          var date = new Date();
          sheet.getRange(5, 2).setValue(date); 
      }
      

      【讨论】:

      • 这是一个非常糟糕的主意,您将日期转换为字符串,然后您会丢失工作表单元格中的所有日期对象属性。显然,您是从包含不必要参数(例如工作表名称)的脚本中获取的...
      • 我已经更新了脚本。现在我没有将日期对象转换为字符串。我在单元格中得到的确切日期为 11/27/2017 11:05:01。但是以前版本的代码将日期对象转换为字符串。我得到了日期的完整字符串 Mon Nov 27 2017 11:04:46 GMT+0530 (IST)。正如您提到的,我没有得到任何不必要的参数,例如工作表名称。如果我有任何错误,请纠正我。
      • 那么,@Sergeinsas 如何获取今天的日期对象?
      • 就这样:var date = new Date();
      【解决方案4】:

      以下可用于获取日期:

      function date_date() {
      var date = new Date();
      var year = date.getYear();
      var month = date.getMonth() + 1;  if(month.toString().length==1){var month = 
      '0'+month;}
      var day = date.getDate(); if(day.toString().length==1){var day = '0'+day;}
      var hour = date.getHours(); if(hour.toString().length==1){var hour = '0'+hour;}
      var minu = date.getMinutes(); if(minu.toString().length==1){var minu = '0'+minu;}
      var seco = date.getSeconds(); if(seco.toString().length==1){var seco = '0'+seco;}
      var date = year+'·'+month+'·'+day+'·'+hour+'·'+minu+'·'+seco;
      Logger.log(date);
      }
      

      【讨论】:

        【解决方案5】:
        function myFunction() {
          var sheetname = "DateEntry";//Sheet where you want to put the date
          var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(sheetname);
            // You could use now Date(); on its own but it will not look nice.
          var date = Utilities.formatDate(new Date(), "GMT+5:30", "yyyy-MM-dd");
            //var endDate = date;
            sheet.getRange(sheet.getLastRow() + 1,1).setValue(date); //Gets the last row which had value, and goes to the next empty row to put new values.
        }
        

        【讨论】:

        • 请添加一些关于您的答案的描述,考虑添加与您更改的特定代码行或需要更改的原因相关的详细信息。谢谢!
        【解决方案6】:

        最简单的方法,你可以使用 JavaScript 日期对象,即 new Date()。

        function changeDate(){
          var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName(GA_CONFIG);
          var date =  new Date();
        
          sheet.getRange(5, 2).setValue(date);
        
         }
        
        

        但是你会得到整个时间对象。您只需将电子表格中的格式更改为时间或日期,随心所欲。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2023-03-22
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-04-28
          • 2019-05-14
          相关资源
          最近更新 更多