首页 > 解决方案 > 创建一个在 Google 表格中返回日期的函数

问题描述

我创建了一个函数,该函数将日期和月数添加到该日期并返回下一个日期。该功能似乎运行良好,我使用 DEBUG 进行了检查。奇怪的是,当我使用下面的行记录返回的日期时,

monthstoadd = 18

date1.setFullYear(2019, 6, 1); 

returnDate = AddMonths(date1, monthstoadd);   // my selfmade function

Logger.log("returnDate(1):", returnDate.getMonth(), "/" , returnDate.getDay(), "/", returnDate.getFullYear());

日志中的日期与调试器中的日期不匹配。有人见过这个吗?另外,有谁知道如何获取数字的整数值?我试了一圈,但得到了一些奇怪的结果。

例如:调试器将值显示为 Tue Dec 01 2020 00:00:00 GMT-0500(东部标准时间),但日志将值显示为 returnDate(1): 11.0 / 2.0 / 2020.0

标签: dategoogle-apps-scriptgoogle-sheetsgoogle-sheets-macros

解决方案


问题:

getMonth返回从 0 到 11 的月份,其中 0 代表 1 月,11 代表 12 月。getDay返回星期 0-6,其中 0 代表星期日,6 代表星期六。所以,日志:

returnDate(1): 11.0 / 2.0 / 2020.0

是正确的并且代表

returnDate(1): Dec / Tue / 2020.0

Tue Dec 01 2020 00:00:00 GMT-0500 (Eastern Standard Time) 

解决方案:

使用Intl

console.info(new Intl.DateTimeFormat().format(returnDate))

或者

console.log("returnDate(1):", returnDate.getMonth()+1, "/" , returnDate.getDate(), "/", returnDate.getFullYear());//Note Date vs Day and "+1"

推荐阅读