# Thread: How to calculate diffrence between two date fields

1. Registered User
Join Date
Sep 2012
Posts
2

## How to calculate diffrence between two date fields

Hi , all

I got 2 fields in my jsp page what i am fill with default values Today and Today - 7

Code below

Code:
```  var date = new Date();
var twoDigitDay=((date.getDate())>=10)? (date.getDate()) : '0' + (date.getDate());
var twoDigitMonth = ((date.getMonth() + 1) >= 10) ? (date.getMonth() + 1) : '0' + (date.getMonth() + 1);
var f_date = twoDigitDay + "." + twoDigitMonth + "." + date.getFullYear();
var datums2 = new Date();
var datums3 = new Date(datums2.getTime() - 7 * 24 * 60 * 60 * 1000);
var twoDigitDay2=((datums3.getDate())>=10)? (datums3.getDate()) : '0' + (datums3.getDate());
var twoDigitMonth2 = ((datums3.getMonth() + 1) >= 10) ? (datums3.getMonth() + 1) : '0' + (datums3.getMonth() + 1);
var f_dateminus7 = twoDigitDay2 + "." + twoDigitMonth2 + "." + datums3.getFullYear();

document.getElementById('StartDate_fltrTagFrom').value = f_dateminus7;
document.getElementById('StartDate_fltrTagTo').value = f_date;```

But user can change theese two date fields i need to make function who calculate diffrennce betwwen these two date fields
Priview if diffrence is bigger that 365 days i got alert and do other stuff , I maked that filter but somthing is goes wrong and a value is not corect where is a problem ?

Code:
```    var date = new Date();
var twoDigitDay=((date.getDate())>=10)? (date.getDate()) : '0' + (date.getDate());
var twoDigitMonth = ((date.getMonth() + 1) >= 10) ? (date.getMonth() + 1) : '0' + (date.getMonth() + 1);
var f_date = twoDigitDay + "." + twoDigitMonth + "." + date.getFullYear();
var datums2 = new Date();
var datums3 = new Date(datums2.getTime() - 7 * 24 * 60 * 60 * 1000);
var twoDigitDay2=((datums3.getDate())>=10)? (datums3.getDate()) : '0' + (datums3.getDate());
var twoDigitMonth2 = ((datums3.getMonth() + 1) >= 10) ? (datums3.getMonth() + 1) : '0' + (datums3.getMonth() + 1);
var f_dateminus7 = twoDigitDay2 + "." + twoDigitMonth2 + "." + datums3.getFullYear();

document.getElementById('StartDate_fltrTagFrom').value = f_dateminus7;
document.getElementById('StartDate_fltrTagTo').value = f_date;```

Thanks !

2. Registered User
Join Date
Sep 2012
Posts
2
Upps the filter code is this
Code:
```    var cbvalue =document.getElementById('StartDate_fltrTagOp');
var d1=document.getElementById('StartDate_fltrTagFrom').value;
var d2=document.getElementById('StartDate_fltrTagTo').value;
var sf_date = Date.parse(d1.replace(".","/").replace(".","/"));
var sf_date2 = Date.parse(d2.replace(".","/").replace(".","/"));
var difference = Math.abs(sf_date2 - sf_date)/60/60/24/1000;
if (difference>365 && cbvalue.checked){
alert("Aprūpes epizodes sākuma meklēšanas kritērijs pārsniedz 365 dienas");```

3. Registered User
Join Date
Oct 2010
Location
Versailles, France
Posts
1,265
All the days are not 24 hours with daylight saving time !
Code:
```// Then prefer
var datum3 = datim2.setDate(datims2.getDate() - 7);
// to
var datums3 = new Date(datums2.getTime() - 7 * 24 * 60 * 60 * 1000);```
to avoid rare but possible errors...

To test the difference, it's to possible to compare the valueOf() or getTime() of one date and this date plus one year with getFullYear() and a setYear() function !
Last edited by 007Julien; 09-06-2012 at 05:36 AM.

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
•