道场日期方法的行为不一致

时间:2020-08-07 09:48:57

标签: dojo

我创建了一个脚本,将2个工作日(工作日)添加到dates属性之一。在这里,我使用了如下的dojo.date.add方法

 var SDate=new Date(dojo.date.stamp.fromISOString(workItem.getValue("SDate19")));
 var tempDate = dojo.date.add(SDate, "weekday", 2);

它工作正常,并且可以增加2天(不包括周末),直到SDate是星期五以外的任何工作日。如果此SDate是星期五,那么我得到的结果是星期日(理想情况下,计算的输出应该是星期二)。

例如:

  • 如果输入(SDate)为2020年8月5日,凌晨1:00,则结果(tempDate)为2020年8月7日,凌晨1:00

  • 如果输入为2020年8月6日,凌晨1:00,则结果为2020年8月10日,凌晨1:00

  • 如果输入为2020年8月7日,凌晨1:00,则结果为2020年8月9日,凌晨1:00->这里的结果应为2020年8月11日,凌晨1:00

最初,我认为这个问题仅在星期五。但是当我将天数从2增加到3时,这个问题也会在星期四和星期五出现。

如果我继续增加这个数字。天,那么问题也会累加到其他工作日。

有没有人观察到类似的问题,或者我在这里做错了什么?

1 个答案:

答案 0 :(得分:0)

好吧,您确实在dojo.date.add中发现了一个错误!每当间隔为“工作日”并加上一周中的某天并且添加的数量为7或更大时,就会发生这种情况。

dojo / date的第161行为:var trgt = (strt + days),应为:var trgt = (strt + days) % 7;

您的选择是不使用dojo.date.add并编写自己的算法,或者拥有自己的dojo.date版本,在其中您如上所述更改了第161行。

相关问题