相关疑难解决方法(0)

计算谷歌应用脚​​本中日期之间的年,月,日

我使用下面的函数进行计算,它以"X年,Y个月,Z天"的格式给出o/p,并且在某些日期它给出了一些错误的o/p.我想我在公式中没有做一些计算.

功能是,

/**
 * @param {Date} startdate
 * @param {Date} enddate
 * @return {String}
 */
function leasePeriodCalc(startDate,endDate)
{
  var sdate=startDate;
  var edate=endDate;
  edate.setDate( edate.getDate()+1);
  edate=new Date(edate);
  if(sdate.valueOf()>edate.valueOf()){
    return('0');
  }
  else{
    var years=((((edate.getDate()-sdate.getDate())<0 ? -1:0)+((edate.getMonth()+1)-(sdate.getMonth()+1)))< 0 ? -1 : 0)+(edate.getFullYear()-sdate.getFullYear());
    var months=((((edate.getDate()-sdate.getDate())<0 ? -1:0)+((edate.getMonth()+1)-(sdate.getMonth()+1)))< 0 ?12:0)+((edate.getDate()-sdate.getDate())<0 ? -1:0)+((edate.getMonth()+1)-(sdate.getMonth()+1));
    if((edate.getMonth()-1)!=1.0)
    {
      var days=((edate.getDate()-sdate.getDate())< 0 ?new Date(edate.getFullYear(), edate.getMonth(),0).getDate():0)+(edate.getDate()-sdate.getDate());
    }
    else
    {
      var days=((edate.getDate()-sdate.getDate())< 0 ?new Date(edate.getFullYear(), edate.getMonth()+1,0).getDate():0)+(edate.getDate()-sdate.getDate());
    }
    var day;
    var month;
    var year;
    if(years>1)year= years+ 'Years';
    else year=years+'Year';
    if(months>1) month= months+ 'Months'; …
Run Code Online (Sandbox Code Playgroud)

javascript datetime date google-apps-script

8
推荐指数
2
解决办法
2万
查看次数

如何格式化非英语语言的日期

如何在英语以外的其他语言的谷歌应用程序中格式化日期?最明显要使用的函数是 Utilities.formatDate。但是,无论脚本或电子表格的区域设置如何,结果始终是英语。

我尝试过将月份和日期的名称(在我的例子中是荷兰语)放入数组中并在其中偏移的解决方案。那种作品。

但是,如果我将带有荷兰语格式日期的字符串放入电子表格单元格中,Google 会悄悄地将其转换回日期值,当我尝试将其格式化为我可以读取的内容时,这会让我回到第一个方向。

那么,有没有关于如何处理这个问题的明确信息。最直接的解决方案显然是 Utilities.formatDate 接受区域设置参数,或者实际上使用脚本或电子表格设置中设置的区域设置。

我是唯一遇到此问题的非英语开发人员吗?

google-sheets google-apps-script google-sheets-api

4
推荐指数
1
解决办法
3862
查看次数