我负责编写用Visual Foxpro编写的遗留应用程序的Web门户。我必须验证怀孕到期日。规则是距离当前日期不能超过9个月。我已经试图争辩说这太模糊了,需要几天或几周,但我被告知必须模仿旧版软件。Javascript等效于visual foxpro gomonth()
下面是在VSP的代码是这样做的:
maxValueForDueDate = GOMONTH(DATE() , 9)
根据MSDNGOMONTH()
处理边界情况如下:
SET CENTURY ON
STORE GOMONTH({^1998-02-16}, 5) TO gdDeadLine
CLEAR
? gdDeadLine && Displays 07/16/1998
? GOMONTH({^1998-12-31}, 2) && Displays 02/28/1999
? GOMONTH({^1998-12-31}, -2) && Displays 10/31/1998
正如你可以看到添加2个月至12月31日不会导致在3月2日,不幸的是,这正是以下JavaScript所做的:
var dDate = new Date('1998-12-31');
dDate.setMonth(dDate.getMonth() + 2);
alert(dDate.toDateString()); // results in - Tue Mar 02 1999
有没有人有一个JavaScript函数方便,他们已经写了这种情况?我搜索了一下,但还没有找到我需要的。我的第三方用法限于JQuery。
我不知道为什么这个工作,但它确实,所以谢谢你。那么30天2个月的平均值是在一个月内的平均值? – Nathan 2012-08-13 19:55:31
@Nathan每月30.5天将会是一年中更好的平均值。大致。我不确定VFP使用什么。如果使用非全天(或关注闰秒),则开始时间应偏向“中午”以解决较小的不确定性。 – 2012-08-13 20:31:37