在Google表格中使用日期

时间:2015-02-03 23:28:10

标签: google-apps-script

日期在Google表格中遇到了一些麻烦。我基本上试图减去日期,但它不起作用。不过,首先,我试图了解日期是如何运作的。以下是日期奇怪行为的一个例子。

  

function 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月03日星期二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

2 个答案:

答案 0 :(得分:0)

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

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

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

希望有所帮助!

答案 1 :(得分:0)

要考虑的事情。 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"):2016年2月18日