Advertisements

wrote:
> Why won't this work in Firefox:
> document.getElementById('content').focus();
> Is there something else to use?

Advice above is good. If you are going to compare date strings, you
must compose them yourself.

var dtToday = Date()

will create a new date object with a date/time of the instant it was
created according to the settings of the user's local machine. This is
likely not accurate or reliable, so you must validate on the server.
Simply writing dtToday will create some string according to the
settings of the local machine, which could be anything.

Supposing txtDDate is the string "01/24/2005", then the equivalent date
string constructed from dtToday will be given by the script below.
Note that date & month less than "10" need a leading zero and that
getFullYear() is not supported on all browsers, so you may need to use
getYear and deal with it's eccentricities:

In regard to date formats, if users' aren't going to see them (or
perhaps even if they are) the accepted international standard is
ISO8601. Your date above would become 2005-01-24 or 2005/01/24. Read
stuff on dates here:

<URL:http://www.merlyn.demon.co.uk/js-dates.htm>

The format mm/dd/yyyy is peculiar to the US and is likely to be
misinterpreted elsewhere in the world. ISO8601 dates should not be.

I appologise for baddly formatted code, but Google Groups insists on
removing all leading spaces, so there's not much I can do.

It does not look like advice; and your response appears unrelated.
> If you are going to compare date strings, you
>must compose them yourself.

That is not a requirement. It is, for example, perfectly correct to
compare for equality date strings in any fixed format; and to compare
for order date strings in an ISO 8601 format. User input validation can
easily ensure comparability.
>var dtToday = Date()
>
>will create a new date object with a date/time of the instant it was
>created according to the settings of the user's local machine.

For me, it creates a string, according to typeof .
> This is
>likely not accurate or reliable, so you must validate on the server.
>Simply writing dtToday will create some string according to the
>settings of the local machine, which could be anything.

In my system, it is unambiguous; its value may be incorrect.
>Supposing txtDDate is the string "01/24/2005", then the equivalent date
>string constructed from dtToday will be given by the script below.
>Note that date & month less than "10" need a leading zero and that
>getFullYear() is not supported on all browsers, so you may need to use
>getYear and deal with it's eccentricities:

Aha - a greengrocer !

getYear()%100 is reliable, so those who expect to lose interest before
AD2100 can often work with 2 year digits. I expect you have seen how
getFullYear can be emulated using getTime and any getYear such that
getYear()%100 is reliable.

>function checkZero(a){
>return (a < 10)? "0" + a : a;
>}

Not a well-named function. Note that it assumes a non-negative integer
input, which is reasonable in this case. Also that it sometimes returns
a string and sometimes a number (assuming input is number); that is
usually harmless and harmless in this case - but if the intended format
were YYYYMMDD [*] then the results would be quite different for
day/month<10, as addition can occur.

[*] For YYYYMMDD, (getFullYear()*100+getMonth()+1)*100+getDate() is
better.

Share This Page

Welcome to The Coding Forums!

Welcome to the Coding Forums, the place to chat about anything related to programming and coding languages.

Please join our friendly community by clicking the button below - it only takes a few seconds and is totally free. You'll be able to ask questions about coding or chat with the community and help others.
Sign up now!