The javascript Date("mm-dd-yyyy") constructor doesn’t work for FF. It works fine for IE.
- IE :
new Date("04-02-2008")=>"Wed Apr 2 00:00:00 EDT 2008" - FF2 :
new Date("04-02-2008")=>Invalid Date
So let’s try another constructor: Date("yyyy", "mm", "dd").
- IE:
new Date("2008", "04", "02");=>"Fri May 2 00:00:00 EDT 2008" - FF:
new Date("2008", "04", "02");=>"Fri May 2 00:00:00 EDT 2008" - IE:
new Date("2008", "03", "02");=>"Wed Apr 2 00:00:00 EDT 2008" - FF:
new Date("2008", "03", "02");=>"Wed Apr 2 00:00:00 EDT 2008"
So the Date("yyyy", "mm", "dd") constructor uses an index of 0 to represent January.
How do I best deal with this other than subtracting 1 from the months?
It is the definition of the Date object to use values 0-11 for the
monthfield.I believe that the constructor using a String is system-dependent (not to mention locale/timezone dependent) so you are probably better off using the constructor where you specify year/month/day as separate parameters.
BTW, in Firefox,
It works fine for me – it will interpret slashes, but not hyphens. This proves my point that using a String to construct a Date object is problematic. Use explicit values for month/day/year instead: