# Thread: Days between today and input date (Date Math

1. Registered User
Join Date
Dec 2013
Posts
11

## 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)) {
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>

<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>```

2. 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.

3. 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;
}```

4. Registered User
Join Date
Dec 2013
Posts
11
Is that code copy/paste-able?
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;
}```

5. Originally Posted by 6SIX
Is that code copy/paste-able?
Only one way to find out.

There are currently 1 users browsing this thread. (0 members and 1 guests)

#### Posting Permissions

• You may not post new threads
• You may not post replies
• You may not post attachments
• You may not edit your posts
•

"

"

## X vBulletin 4.2.2 Debug Information

• Page Generation 0.15415 seconds
• Memory Usage 2,892KB
• Queries Executed 15 (?)
Template Usage (34):
• (3)bbcode_code
• (2)bbcode_quote
• (1)footer
• (1)forumjump
• (1)forumrules
• (1)gobutton
• (5)memberaction_dropdown
• (1)navbar
• (1)navbar_moderation
• (1)navbar_noticebit
• (1)navbar_tabs
• (2)option
• (5)postbit
• (5)postbit_onlinestatus
• (5)postbit_wrapper
• (1)spacer_close
• (1)spacer_open
• (1)tagbit_wrapper

Phrase Groups Available (6):
• global
• inlinemod
• postbit
• posting
• reputationlevel
Included Files (26):
• ./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/functions_bigthree.php
• ./includes/class_postbit.php
• ./includes/class_bbcode.php
• ./includes/functions_reputation.php
• ./includes/functions_notice.php
• ./packages/vbattach/attach.php
• ./vb/types.php
• ./vb/cache.php
• ./vb/cache/db.php
• ./vb/cache/observer/db.php
• ./vb/cache/observer.php

Hooks Called (73):
• init_startup
• friendlyurl_resolve_class
• 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_postinfo_query
• fetch_postinfo
• fetch_foruminfo
• global_state_check
• global_bootstrap_complete
• global_start
• style_fetch
• global_setup_complete
• strip_bbcode
• friendlyurl_clean_fragment
• friendlyurl_geturl
• forumjump
• cache_templates
• cache_templates_process
• template_register_var
• template_render_output
• fetch_template_start
• fetch_template_complete
• parse_templates
• notices_check_start
• notices_noticebit
• process_templates_complete
• friendlyurl_redirect_canonical
• bbcode_fetch_tags
• bbcode_create
• postbit_factory
• postbit_display_start
• postbit_imicons
• bbcode_parse_start
• bbcode_parse_complete_precache
• bbcode_parse_complete
• postbit_display_complete
• memberaction_dropdown
• tag_fetchbit
• tag_fetchbit_complete
• forumrules
• navbits
• navbits_complete