我負責編寫用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