Previous | Next | (P-PDF) Forms & FDF
Topic: Re: Date Validation
Conf: (P-PDF) Forms & FDF, Msg: 63798
From: kt
Date: 5/29/2002 06:07 PM
>From: "Peter"
>
>I'm having trouble validating a date field. I have two fields one is the
>"submited" date the other is the "need by" date. I want a validation that
>will check to see if the "need by" date is at least 3 days ahead from the
>"submitted" date. Following is the code I was trying to use...
>
>// Get date from field
>
>var v1 = this.getField "Request").value;
>
>var d1 = this.getField("Date Required").value;
>
>// Turn date's into their numeric representation
>
>var vn1 = v1.valueOf();
>
>var dn1 = d1.valueOf();
>
>// numeric representation of 3 days
>
>var threedays = 1000 * 60 * 60 * 24 * 3;
>
>// Compare dates
>
>var vn2 = vn1 + threedays;
>
>if (vn2 < dn1) {
>
>"The date you have entered is not 3 days from the Date of Request"); }
Peter,
You have to convert the text entered by your user into a Date object.
You're starting with a String (whatever was typed by the user). That String
needs to be parsed into yr, mo, day and fed to:
new Date(yr,mo,day);
For example:
var a = getField('Request').value; // retrieve the user's date string
// we'll presume the user has followed a format of DD-MM-YYYY.
a=a.toString().split('-'); // split on hyphens
a[1] -= 1; // month must be zero-based
// now call the Date constructor:
var vn1 = new Date(a[2],a[1],a[0]);
After this code executes, vn1 contains a valid Date object, which is to
say, a millisecond representation of the date. You can then go ahead and do
millisecond arithmetic on it.
JavaScript expects the month to be zero-based, hence January is zero! This
makes the Date constructor happy. Otherwise, chaos.
It's all a little whacky until you get used to it. Any book on JavaScript
discusses Date objects to death. Acrobat follows the 1.2 implementation.
Kas Thomas
---------------------------------------
kt@acroforms.com www.acroforms.com
---------------------------------------