我使用下面的函数进行计算,它以"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) 如何在英语以外的其他语言的谷歌应用程序中格式化日期?最明显要使用的函数是 Utilities.formatDate。但是,无论脚本或电子表格的区域设置如何,结果始终是英语。
我尝试过将月份和日期的名称(在我的例子中是荷兰语)放入数组中并在其中偏移的解决方案。那种作品。
但是,如果我将带有荷兰语格式日期的字符串放入电子表格单元格中,Google 会悄悄地将其转换回日期值,当我尝试将其格式化为我可以读取的内容时,这会让我回到第一个方向。
那么,有没有关于如何处理这个问题的明确信息。最直接的解决方案显然是 Utilities.formatDate 接受区域设置参数,或者实际上使用脚本或电子表格设置中设置的区域设置。
我是唯一遇到此问题的非英语开发人员吗?