# Days between today and input date (Date Math

• 12-17-2013, 12:09 AM
6SIX
Days between today and input date (Date Math
So this is a homework assignment. I'm really bad at JavaScript and need more than just suggestions and hints.

1. input from a single entry field of a validated date in mm/dd/yyyy format. You only need to validate the date format, not that it is a valid date. The associated output area will display the current date in mm/dd/yyyy format, the date that was input and the number of days between the two dates. Be sure to indicate which date was input and which is the current date.

2. Will take a validated number from 10-99 from a single entry field. The associated output area will display a random whole number from 1 to a maximum of the number input.
3. Will take input from two text fields. The associated output area will display the content of both input fields and an indication if the input from field one is a substring of the input from field two.

This is as far as I've gotten
Code:

```<script type = "text/javascript"> function checkit() {         var d1 = document.myform.date1.value.split("/");         var yr = d1[2];         var mm = d1[1]-1;         var dy = d1[0];         var OK1 = checkValidDate(yr,mm,dy);         if ((yr < 0001|| yr > 9999)) {OK1 = false}         var d2 = document.myform.date2.value.split("/");         var date1 = new Date();         var yr = date1.getFullYear();         var mm = date1.getMonth();         var dy = date1.getDate();         if ((!OK1) || (!OK2)) {         alert ("Invalid dates\(s\) or incorrect format!  Please try again.");         document.myform.date1.value = "";         document.myform.date2.value = "";         return false;         }         var firstDate = new Date(d1[2],d1[1]-1,d1[0]);         var secondDate = new Date(d2[2],d2[1]-1,d2[0]);          function daysBetween(startDate,stopDate) {         var ONE_DAY = 1000 * 60 * 60 * 24;  // The number of milliseconds in one day         var dx_ms = startDate.getTime();  // Convert both dates to milliseconds         var dy_ms = stopDate.getTime();         // Calculate the difference in milliseconds         var difference_ms = Math.abs(dy_ms - dx_ms);         // Convert back to days and return         return Math.round(difference_ms/ONE_DAY);         }                 alert("Days between the two dates is " + daysBetween(firstDate,secondDate)); } </script> </head> <body> <form name = "myform"> Enter Date DD/MM/YYYY <input type = "text" name = "date1" id = "date1"><br> <br><br> <input type = "button" value = "Check Date" onclick = "checkit()"> </form> </body> </html>```
• 12-17-2013, 10:34 AM
JMRKER
Several of observations:

1. You seem to be subtracting 1 from the month value twice.
2. You seem to be missing the code for the checkValidDate() function
3. You are testing an undefined variable: OK2

Might want to use the error console in the FF or Chrome browsers.
• 12-17-2013, 04:22 PM
\\.\
More observations, you have name = "date1" but no name = "date2" field, you make reference to it in your script.

Your HTML code should have no spaces between the name and the value in the tags, example <input type = "text" name = "date1" id = "date1"> should be <input type="text" name="date1" id="date1" />

You should have it value="" for the inputs. It prevents errors in code for example Google Chrome wouldn't run because the form fields had no value="" set and the only other option was to use the getElementbyId method, when I put in the value="" then the more direct reference to the document.myform.date1.value worked.

This is how I would calculate the number of days between two dates
Code:

```function tween(start,end) {         var start = start.split("/");         start.reverse();         var startDate = new Date(start[0],start[1]-1,start[2],0,0,0).getTime();                 var end = end.split("/");         end.reverse();         var endDate = new Date(end[0],end[1]-1,end[2],0,0,0).getTime();                 // we know that 86400000 milliseonds exist in a day                 var days = Math.floor( Math.abs(startDate-endDate)/86400000 );                 return days;         }```
• 12-18-2013, 12:18 AM
6SIX
Is that code copy/paste-able?
Quote:

Originally Posted by \\.\
More observations, you have name = "date1" but no name = "date2" field, you make reference to it in your script.

Your HTML code should have no spaces between the name and the value in the tags, example <input type = "text" name = "date1" id = "date1"> should be <input type="text" name="date1" id="date1" />

You should have it value="" for the inputs. It prevents errors in code for example Google Chrome wouldn't run because the form fields had no value="" set and the only other option was to use the getElementbyId method, when I put in the value="" then the more direct reference to the document.myform.date1.value worked.

This is how I would calculate the number of days between two dates
Code:

```function tween(start,end) {         var start = start.split("/");         start.reverse();         var startDate = new Date(start[0],start[1]-1,start[2],0,0,0).getTime();                 var end = end.split("/");         end.reverse();         var endDate = new Date(end[0],end[1]-1,end[2],0,0,0).getTime();                 // we know that 86400000 milliseonds exist in a day                 var days = Math.floor( Math.abs(startDate-endDate)/86400000 );                 return days;         }```

• 12-18-2013, 12:07 PM
\\.\
Quote:

Originally Posted by 6SIX
Is that code copy/paste-able?

Only one way to find out.

## X vBulletin 4.2.2 Debug Information

• Page Generation 0.11938 seconds
• Memory Usage 2,373KB
• Queries Executed 11 (?)
Template Usage (21):
• (3)bbcode_code_printable
• (2)bbcode_quote_printable
• (1)footer
• (1)gobutton
• (1)navbar_moderation
• (1)navbar_noticebit
• (2)option
• (1)spacer_close
• (1)spacer_open

Phrase Groups Available (3):
• global
• postbit
Included Files (19):
• ./global.php
• ./includes/class_bootstrap.php
• ./includes/init.php
• ./includes/class_core.php
• ./includes/config.php
• ./includes/functions.php
• ./includes/class_friendly_url.php
• ./includes/class_hook.php
• ./includes/class_bootstrap_framework.php
• ./vb/vb.php
• ./vb/phrase.php
• ./includes/functions_calendar.php
• ./includes/class_bbcode_alt.php
• ./includes/class_bbcode.php
• ./includes/functions_bigthree.php
• ./includes/functions_notice.php

Hooks Called (41):
• init_startup
• init_startup_session_setup_start
• database_pre_fetch_array
• database_post_fetch_array
• init_startup_session_setup_complete
• global_bootstrap_init_start
• global_bootstrap_init_complete
• cache_permissions
• fetch_foruminfo
• global_state_check
• global_bootstrap_complete
• global_start
• style_fetch
• global_setup_complete
• bbcode_fetch_tags
• bbcode_create
• bbcode_parse_start
• cache_templates
• cache_templates_process
• template_register_var
• template_render_output
• fetch_template_start
• fetch_template_complete
• parse_templates