www.webdeveloper.com
Results 1 to 3 of 3

Thread: How to calculate diffrence between two date fields

  1. #1
    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. #2
    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;
          alert(difference);
         if (difference>365 && cbvalue.checked){
            alert("Aprūpes epizodes sākuma meklēšanas kritērijs pārsniedz 365 dienas");

  3. #3
    Join Date
    Oct 2010
    Location
    Versailles, France
    Posts
    1,264
    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.

Thread Information

Users Browsing this Thread

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
  •  
HTML5 Development Center



Recent Articles