By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
424,984 Members | 1,461 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 424,984 IT Pros & Developers. It's quick & easy.

Two input fields to a single database field

P: n/a
Hello,
I don't know what this would be called, and searches for the subject
above are not useful. FAQ did not seem to provide anything either.
My inherited application already uses Javascript for data input
validations so I thought this would be a good fit for it also.

Here's my situation:
I have a form (below) with a date input to filter with on a single
database field. I need to allow mM/dD/YYYY input (which already
works) and number-of-days-prior -- user's choice. This is supposed to
filter items that have a datestamp n number of days prior to today's
current date OR prior to the date entered. The end criteria for
either is formatted as the date mm/dd/yyyy.

Can Javascript help me with this requirement? What is this called? So
maybe I can search further for existing posts or web pages.

Thanks in advance.

dlrider
form code:
<form name="AdminFind" action="index.cfm?action=adminfindlist"
method="post">
Plan modified on/before date:
<input name="plan_main_user_modify_date" type="text" size=10
maxlength=10 value="">
<input name="find" type="submit" value="Find" onClick="return
validateDate();" >
</form>

Sep 7 '07 #1
Share this Question
Share on Google+
10 Replies


P: n/a
Hey dlrider,
See if this is what you are looking for.

<script language="javascript">
function addtodate(date1, numberdays)
{
newdate=new Date(date1.getTime()+numberdays*(1000*60*60*24));
return newdate;
}
mydate=addtodate(new Date(),3);
alert(mydate);
</script>

This should add "numberdays" to the date passed to the function. You
can modify it to subtract as well. You might have to do some
formatting on the mm/dd/yyyy to create the date object to pass to the
function.

Matt R.
On Fri, 07 Sep 2007 12:46:59 -0700, dlrider <tw******@gmail.com>
wrote:
>Hello,
I don't know what this would be called, and searches for the subject
above are not useful. FAQ did not seem to provide anything either.
My inherited application already uses Javascript for data input
validations so I thought this would be a good fit for it also.

Here's my situation:
I have a form (below) with a date input to filter with on a single
database field. I need to allow mM/dD/YYYY input (which already
works) and number-of-days-prior -- user's choice. This is supposed to
filter items that have a datestamp n number of days prior to today's
current date OR prior to the date entered. The end criteria for
either is formatted as the date mm/dd/yyyy.

Can Javascript help me with this requirement? What is this called? So
maybe I can search further for existing posts or web pages.

Thanks in advance.

dlrider
form code:
<form name="AdminFind" action="index.cfm?action=adminfindlist"
method="post">
Plan modified on/before date:
<input name="plan_main_user_modify_date" type="text" size=10
maxlength=10 value="">
<input name="find" type="submit" value="Find" onClick="return
validateDate();" >
</form>
Sep 7 '07 #2

P: n/a
In comp.lang.javascript message <46***********************@news.orange.f
r>, Sat, 8 Sep 2007 01:44:50, ASM <st*********************@wanadoo.fr.in
validposted:
>user_day = user_day.split('/');
probably OK
>user_day = new Date(user_day[2],user_day[1],user_day[0]);
A -1 is usually needed here ................^
>// time spent since 1970 for user's day
No, that would mean 86400 seconds for the start of 1971-01-02 local.
You mean "time in milliseconds since 1970-01-01 00:00:00 UTC ..."
>user_day = Date.parse(user_day);
Initially, user_day was a Date Object; Date.parse requires a String, so
implicit conversion is needed; Date.parse will then convert back (and
would get it wrong for most of the First Century AD).
user_day = +user_day // will convert from Date Object to Number,
// reliably and rapidly.
If one has two valid string dates for similar locations and possibly
dissimilar seasons, and the time parts are absent, zero, or similar,
then
DaysDifference = Math.round( ( new Date(DS2)-new Date(DS1) )/864e5 )

--
(c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v6.05 IE 6
news:comp.lang.javascript FAQ <URL:http://www.jibbering.com/faq/index.html>.
<URL:http://www.merlyn.demon.co.uk/js-index.htmjscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/TP/BP/Delphi/jscr/&c, FAQ items, links.
Sep 8 '07 #3

P: n/a
In comp.lang.javascript message <7dc3e394jrrq4ed5a4f54akaokivs04cce@4ax.
com>, Fri, 7 Sep 2007 16:29:20, Matt Ratliff <ma***@safedataisp.net>
posted:
newdate=new Date(date1.getTime()+numberdays*(1000*60*60*24));
Shoddy coding, but will pass simple-minded testing. OK if used only in
places like Beijing, Accra, Hawaii.

--
(c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v6.05 IE 6.
Web <URL:http://www.merlyn.demon.co.uk/- w. FAQish topics, links, acronyms
PAS EXE etc : <URL:http://www.merlyn.demon.co.uk/programs/- see 00index.htm
Dates - miscdate.htm moredate.htm js-dates.htm pas-time.htm critdate.htm etc.
Sep 8 '07 #4

P: n/a
ASM
En réponse à Dr J R Stockton qui écrivit, en date du : 8/09/07 22:36,
le message suivant :
In comp.lang.javascript message <46***********************@news.orange.f
r>, Sat, 8 Sep 2007 01:44:50, ASM <st*********************@wanadoo.fr.in
validposted:
>user_day = user_day.split('/');
probably OK
Don't know ... but it works :-)
(didn't try with the part of php code)
>user_day = new Date(user_day[2],user_day[1],user_day[0]);
A -1 is usually needed here ................^
oops !?
>// time spent since 1970 for user's day
No, that would mean 86400 seconds for the start of 1971-01-02 local.
You mean "time in milliseconds since 1970-01-01 00:00:00 UTC ..."
OK, thanks for the precision.
>user_day = Date.parse(user_day);
Initially, user_day was a Date Object; Date.parse requires a String, so
implicit conversion is needed;
?? Firefox's Errors consol didn't tell me that was wrong.
I thought that new Date() returned a string, no?
Date.parse will then convert back (and
would get it wrong for most of the First Century AD).
I hope there will be no meeting planed at this time :-)
user_day = +user_day // will convert from Date Object to Number,
// reliably and rapidly.
You're not wrong.
but isn't automatically converted by the condition (day_user>0) ?
If one has two valid string dates for similar locations and possibly
dissimilar seasons, and the time parts are absent, zero, or similar,
then
DaysDifference = Math.round( ( new Date(DS2)-new Date(DS1) )/864e5 )
Great !
Remain only to try to remember it ... !

--
sm
Sep 10 '07 #5

P: n/a
What, and it took you a whole day to come up with this all by
yourself. I guess if everyone had that much time we might be out of
the dark ages by now. :-)

On Sat, 8 Sep 2007 20:42:12 +0100, Dr J R Stockton
<jr*@merlyn.demon.co.ukwrote:
>In comp.lang.javascript message <7dc3e394jrrq4ed5a4f54akaokivs04cce@4ax.
com>, Fri, 7 Sep 2007 16:29:20, Matt Ratliff <ma***@safedataisp.net>
posted:
> newdate=new Date(date1.getTime()+numberdays*(1000*60*60*24));

Shoddy coding, but will pass simple-minded testing. OK if used only in
places like Beijing, Accra, Hawaii.
Sep 10 '07 #6

P: n/a
Thank you all for your responses. However, I am not as intelligent
RE: javascript and could not get these to work. In digging through
the Web for things related I came across this (http://
www.thescripts.com/forum/thread91233.html):

<script type="text/javascript">
function zp(n){
return n<10?("0"+n):n;
}
function insertDate(t,format){
var now=new Date();
var DD=zp(now.getDate());
var MM=zp(now.getMonth()+1);
var YYYY=now.getFullYear();
var YY=zp(now.getFullYear()%100);
format=format.replace(/DD/,DD);
format=format.replace(/MM/,MM);
format=format.replace(/YYYY/,YYYY);
format=format.replace(/YY/,YY);
t.value=format;
}
</script>

This would work for our purposes, except I would like it to bump the
month back one by default. I found how to do that but when the
current date is January the month becomes "00". How would I get it to
bump the month to "12" and then the year back one? (I can see now
that I will be more of a plug-n-pray type javascript user). I
envision a nested "if-then" series to do this but I have spun my
wheels doing this before. Thanks again.

D.

Sep 10 '07 #7

P: n/a
In comp.lang.javascript message <46**********************@news.orange.fr
>, Mon, 10 Sep 2007 02:23:11, ASM <st*********************@wanadoo.fr.in
validposted:
>En réponse à Dr J R Stockton qui écrivit, en date du : 8/09/07 22:36,
le message suivant :
>In comp.lang.javascript message <46***********************@news.orange.f
r>, Sat, 8 Sep 2007 01:44:50, ASM <st*********************@wanadoo.fr.in
validposted:
>>// time spent since 1970 for user's day
No, that would mean 86400 seconds for the start of 1971-01-02 local.
You mean "time in milliseconds since 1970-01-01 00:00:00 UTC ..."

OK, thanks for the precision.
You do, after all, seem to be of the country in which BIPM and BIH and
IERS reside ... . But many in the obtuser parts of the world ignore the
difference, and suffer, and cause others to suffer too.

>>user_day = Date.parse(user_day);
Initially, user_day was a Date Object; Date.parse requires a String, so
implicit conversion is needed;

?? Firefox's Errors consol didn't tell me that was wrong.
It's valid. It's as valid as going from Paris to Versailles via Monaco.

Another tip for speed : the UTC functions are considerably faster than
the non-UTC ones; only use non-UTC when handling actual date/time,
orneeding to respect time zones or Summer Time.

>I thought that new Date() returned a string, no?
No. It returns a Date Object, which holds an IEEE Double of
milliseconds from epoch and has several Methods. One of those,
toString, is used by default if the context demands a string.
>Date.parse will then convert back (and
would get it wrong for most of the First Century AD).

I hope there will be no meeting planed at this time :-)
But it should be considered when coding for the Date of Easter!
> user_day = +user_day // will convert from Date Object to Number,
// reliably and rapidly.

You're not wrong.
but isn't automatically converted by the condition (day_user>0) ?
It would be; but IIRC it would ALSO be converted elsewhere in the code.

If when assigning to a variable it is the numeric value which matters,
assign a Number. Unary + will do that.

--
(c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v6.05 MIME.
Web <URL:http://www.merlyn.demon.co.uk/- FAQish topics, acronyms, & links.
For news:borland.*, use their server newsgroups.borland.com ; but first read
Guidelines <URL:http://www.borland.com/newsgroups/guide.htmlff. with care.
Sep 10 '07 #8

P: n/a
In comp.lang.javascript message <11*********************@k79g2000hse.goo
glegroups.com>, Mon, 10 Sep 2007 09:12:54, dlrider <tw******@gmail.com>
posted:
>This would work for our purposes, except I would like it to bump the
month back one by default. I found how to do that but when the
current date is January the month becomes "00". How would I get it to
bump the month to "12" and then the year back one?
When you think you have almost solved that - see below - remember to
consider what should happen if the initial date is May 31st or March
29th.

If permissible, go back 30 days or 4 weeks instead.

It's a good idea to read the newsgroup c.l.j and its FAQ. See below.

--
(c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v6.05 IE 6
news:comp.lang.javascript FAQ <URL:http://www.jibbering.com/faq/index.html>.
<URL:http://www.merlyn.demon.co.uk/js-index.htmjscr maths, dates, sources.
<URL:http://www.merlyn.demon.co.uk/TP/BP/Delphi/jscr/&c, FAQ items, links.
Sep 10 '07 #9

P: n/a
ASM
En réponse à Dr J R Stockton qui écrivit, en date du : 10/09/07 21:41,
le message suivant :
In comp.lang.javascript message <46**********************@news.orange.fr
>, Mon, 10 Sep 2007 02:23:11, ASM <st*********************@wanadoo.fr.in
validposted:
>En réponse à Dr J R Stockton qui écrivit, en date du : 8/09/07 22:36,
le message suivant :
>>In comp.lang.javascript message <46***********************@news.orange.f
r>, Sat, 8 Sep 2007 01:44:50, ASM <st*********************@wanadoo.fr.in
validposted:
>>Date.parse will then convert back (and
would get it wrong for most of the First Century AD).
I hope there will be no meeting planed at this time :-)

But it should be considered when coding for the Date of Easter!
BIPM and IERS with UTC work on (can give) Date of Easter ?

--
sm
Sep 10 '07 #10

P: n/a
In comp.lang.javascript message <46**********************@news.orange.fr
>, Tue, 11 Sep 2007 01:20:54, ASM <st*********************@wanadoo.fr.in
validposted:
>En réponse à Dr J R Stockton qui écrivit, en date du : 10/09/07 21:41,
le message suivant :
>In comp.lang.javascript message <46**********************@news.orange.fr
>>, Mon, 10 Sep 2007 02:23:11, ASM <st*********************@wanadoo.fr.in
validposted:
>>En réponse à Dr J R Stockton qui écrivit, en date du : 8/09/07 22:36,
le message suivant :
In comp.lang.javascript message <46***********************@news.orange.f
r>, Sat, 8 Sep 2007 01:44:50, ASM <st*********************@wanadoo.fr.in
validposted:
>>>Date.parse will then convert back (and
would get it wrong for most of the First Century AD).
I hope there will be no meeting planed at this time :-)
But it should be considered when coding for the Date of Easter!

BIPM and IERS with UTC work on (can give) Date of Easter ?
That may depend on what Prayer Books they have, and what French
legislation says; the EU and ISO apparently have not addressed the
matter (logically, if ISO has not, then EU needs to).

But the Date of Easter commemorates an event of the First Century AD;
and in testing aspects of its behaviour it's nice to have an algorithm
which behaves properly all the way down to the Year Zero. OTOH,
calculating the Date of Easter does not need a Date Object.
By the way, my latest Date code (js-misc1.htm, foot) is
function DayCheck2(El) { var St, RE, A, D, W, X, Y, Z
St = El.value
RE = /(\D{0,80}\b)(\d+)-(\d\d)-(\d\d)\s+([a-z]{3})\b/gi
RE.lastIndex = 0 // Seems needed in FF & Op // B
while (true) {
A = RE.exec(St) ; RE.lastIndex -= 10 // max? // C
if (!A) break
D = new Date(Date.UTC(+A[2]+400, A[3]-4801, A[4])) // A
X = (D.getUTCMonth() != A[3]-1) // Y M D invalid
W = Week[D.getUTCDay()]
Y = (W != A[5]) && ! A[5].match(/UTC|GMT|and|was/)
if (X || Y) {
Z = 'After\n"' + A[1] + '"\n\n' + A[2]+"-"+A[3]+"-"+A[4]
Z += (X ? " invalid " : Y ? " "+A[5]+" -" : " ?!?") + W
if (!confirm(Z+"\n\nOK to proceed or Cancel to quit?")) break
} } }

Note :
(0) Week is an obvious Global array.
(1) Line A; the 400 & 4800 are to make it work in years 0000 to 0099.
(2) UTC for speed. FireFox has a known bug in Date.UTC( , ,0) which I
should attend to here - see (5).
(3) Line B; a second call of the function fails in FF & Opera without
that line, but works without it in IE6. Which is right?
(4) Line C; the -=10 is a bodge so that some of a preceding date can be
read into A[1] as preceding context without going far enough to find a
preceding date again.
(5) Now D = new Date(Date.UTC(+A[2]+400, A[3]-4801, +A[4]+1)-864e5)
--
(c) John Stockton, Surrey, UK. ?@merlyn.demon.co.uk Turnpike v6.05 MIME.
Web <URL:http://www.merlyn.demon.co.uk/- FAQish topics, acronyms, & links.
Proper <= 4-line sig. separator as above, a line exactly "-- " (SonOfRFC1036)
Do not Mail News to me. Before a reply, quote with ">" or "" (SonOfRFC1036)
Sep 11 '07 #11

This discussion thread is closed

Replies have been disabled for this discussion.