在 Google 表格中使用日期

Posted

技术标签:

【中文标题】在 Google 表格中使用日期【英文标题】:Using dates in Google Sheets 【发布时间】:2015-02-03 23:28:09 【问题描述】:

日期给 Google 表格带来了一些麻烦。我基本上是在尝试减去日期,但它不起作用。但是首先,我试图了解 Dates 是如何工作的。下面是一个奇怪的日期行为示例。

函数 addDates(sheet) var prevDateCurrYear = new Date(); Logger.log(prevDateCurrYear); Logger.log(prevDateCurrYear.getMonth()+' '+prevDateCurrYear.getDay()+' '+prevDateCurrYear.getYear());

这是日志

[15-02-03 18:15:21:631 EST] 2 月 3 日星期二 18:15:21 GMT-05:00 2015 [15-02-03 18:15:21:632 EST] 2015 年 1 月 2 日

getMonth 和 getDay 似乎不起作用。它应该是拉 2 和 3,而不是拉 1 和 2。为什么会这样?

我正在使用此文档:https://developers.google.com/apps-script/reference/contacts/date-field

【问题讨论】:

【参考方案1】:

实际上getMonth 和getDay 是Java 脚本方法。 getMonth 和 getDay 在 javascript 中的工作方式不同。您可以参考这些页面了解更多信息。

http://www.w3schools.com/jsref/jsref_getday.asp

http://www.w3schools.com/jsref/jsref_getmonth.asp

希望有帮助!

【讨论】:

【参考方案2】:

需要考虑的几件事。 1. 在脚本项目属性中设置时区。文件,项目属性。 2. 使用Utilities.formatDate() 可以减轻很多头痛,因为您可以根据需要标准化日期。 3. getDay()getDate() 分别返回“星期几(即 1-7)”和“月份中的日期(即 1-31)”。

这里有一些关于日期的更多细节需要澄清:

function addDates() 
  var prevDateCurrYear = new Date();
  var year = Utilities.formatDate(prevDateCurrYear, "America/Denver", "yyyy");
  var date = Utilities.formatDate(prevDateCurrYear, "America/Denver", "d");
  var month = Utilities.formatDate(prevDateCurrYear, "America/Denver", "M");
    Logger.log("\nUnformatted prevDateCurrYear: "+prevDateCurrYear+
      "\n\nYour original log:\nprevDateCurrYear.getMonth(): "+prevDateCurrYear.getMonth()+"\n"+
      "prevDateCurrYear.getDay(): "+prevDateCurrYear.getDay()+"\n"+
      "prevDateCurrYear.getYear(): "+prevDateCurrYear.getYear()+"\n"+
      "\nUsing Utilites.formatDate():\nmonth: "+month+"\ndate: "+date+"\nyear: "+year+
      "\nUtilities.formatDate(prevDateCurrYear, \"America/Denver\", \"M d yyyy\"): "
      +Utilities.formatDate(prevDateCurrYear, "America/Denver", "M d yyyy"));

日志:

未格式化的 prevDateCurrYear:2016 年 2 月 18 日星期四 11:29:42 GMT-0700 (MST)

您的原始日志:

prevDateCurrYear.getMonth(): 1

prevDateCurrYear.getDay(): 4

prevDateCurrYear.getYear(): 2016

使用 'Utilites.formatDate()`:

月:2

日期:18

年份:2016

Utilities.formatDate(prevDateCurrYear, "America/Denver", "M d yyyy"): 2 18 2016

【讨论】:

以上是关于在 Google 表格中使用日期的主要内容,如果未能解决你的问题,请参考以下文章

Google 表格月底日期

使用 Apps 脚本在带有日期的 Google 电子表格中存档

带有日期条件的 Google 表格 Sumifs

=ArrayFormula 使用 SumIf 函数在 Google 表格中的两个日期之间求和

Google 表格 - 返回多个表格中的最早日期

如何在Google表格中使用QUERY返回最大日期的行?