Mengambil nilai jarak antara dua tanggal (javascript)
Posted by Jawaad on 21 January, 2009
5 Comments
This item was filled under [ Code Snippet, Javascript ]
Menampilkan jarak jumlah hari diantara 2 tanggal.
contoh:
tanggal mulai: 2009-01-29
tanggal akhir: 2009-02-03
hasil jarak tanggal dalam jumlah hari = 5
Fungsi scriptnya sbb, simpan dengan nama file datediff.js:
var DayName=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"]; var oneMinute=1000*60; var intervalObject=new Object(); intervalObject["yyyy"]={units:1000*60*60*24*365,measure:"year"}; intervalObject["m"]={units:1000*60*60*24*30,measure:"month"}; intervalObject["d"]={units:1000*60*60*24,measure:"day"}; intervalObject["Q"]={units:intervalObject["m"].units*3,measure:"quarter"}; intervalObject["H"]={units:oneMinute*60,measure:"hour"}; intervalObject["N"]={units:oneMinute,measure:"minute"}; intervalObject["S"]={units:1000,measure:"second"}; function DateDiff(dateAddObj){ this.interval=dateAddObj.interval; this.date1=dateAddObj.date1; this.date2=dateAddObj.date2; this.calculate=calculate; this.calculate(); } Date.prototype.DateDiff=DateDiff; function calculate(){ var paramDate1=new String(this.date1); splitDate1=paramDate1.split("-"); paramDateYear1=splitDate1[0]; paramDateMonth1=splitDate1[1]-1; paramDateDay1=splitDate1[2]; if(paramDateMonth1>12){ alert("Invalid Month!"); return false; } if(paramDateDay1>31){ alert("Invalid Day!"); return false; } var paramDate2=new String(this.date2); splitDate2=paramDate2.split("-"); paramDateYear2=splitDate2[0]; paramDateMonth2=splitDate2[1]-1; paramDateDay2=splitDate2[2]; if(paramDateMonth2>12){ alert("Invalid Month!"); return false; } if(paramDateDay2>31){ alert("Invalid Day!"); return false; } var paramDate1Object=new Date(paramDateYear1,paramDateMonth1,paramDateDay1); paramDate1Object.setHours(0); paramDate1Object.setMinutes(0); paramDate1Object.setSeconds(0); //paramDate1Object.getTimezoneOffset() * oneMinute; var paramDate1ObjectTime=paramDate1Object.getTime(); var paramDate2Object=new Date(paramDateYear2,paramDateMonth2,paramDateDay2); paramDate2Object.setHours(0); paramDate2Object.setMinutes(0); paramDate2Object.setSeconds(0); var paramDate2ObjectTime=paramDate2Object.getTime(); if(paramDate2Object>paramDate1Object){ DSTAdjust=(paramDate2Object.getTimezoneOffset() - paramDate1Object.getTimezoneOffset()) * oneMinute; } else{ DSTAdjust=(paramDate1Object.getTimezoneOffset() - paramDate2Object.getTimezoneOffset()) * oneMinute; } if(typeof intervalObject[this.interval]!="undefined"){ if(typeof intervalObject[this.interval].units=="undefined"){ alert("Interval is invalid!"); return false; } // var diff=Math.abs(paramDate2ObjectTime-paramDate1ObjectTime) - DSTAdjust; // yg ini saya ubah tidak memakai abs, supaya hasil minus tetap minus, berguna untuk validasi dll.. var diff=(paramDate2ObjectTime-paramDate1ObjectTime) - DSTAdjust; var timeDiff=Math.floor(diff/intervalObject[this.interval].units); if(timeDiff>1){ var rname=intervalObject[this.interval].measure + "s"; } else{ var rname=intervalObject[this.interval].measure; } this.difference=parseInt(timeDiff); } else{ this.difference="Wrong format of interval!"; } }
Penggunaan:
<html> <head> <script type="text/javascript" src="datediff.js"></script> </head> <body> <script type="text/javascript"> var curDate=new Date(); startDate="2009-02-02"; endDate="2009-01-30"; curDate.DateDiff({interval:"d",date1:startDate,date2:endDate}); alert(curDate.difference); </script> </body>
Maka hasilnya akan ada alert berjumlah: -3
Hasil minus disini bisa berguna untuk cek validasi dan lain2.. sesuaikan dgn kebutuhan aplikasi kita.
Sumber Core JS: http://www.softxml.com/jsdatefunctions/datefunctions.htm
Beberapa code telah dimodif, silahkan lihat komentar pada file script “datediff.js”
Semoga bermanfaat ![]()
Popularity: 2,225 views


1
0
5 Comments on “Mengambil nilai jarak antara dua tanggal (javascript)”
terimakasih mas sangat membantu
Like or Dislike: