I have tried like this
<script type="text/javascript">
var date2=02/09/2009;
var date1=03/12/2009;
var diff = date1.getDate()-date2.getDate();
alert (diff);
</script>
but it's not working, is that reason getDate
will work only for Date
?
How to find the difference between these two dates? Am I not able use this function, because I am adding javascript in salesforce CRM apex pages?
Edit 1 : infact this too not working
<script type="text/javascript">
var date2= new Date ("02/09/2009");
var date1= new Date ("04/09/2009");
var diff = date1.getDate()-date2.getDate();
alert (diff);
</script>
Edit 2 : its not working too ...
<script type="text/javascript">
var date2= "02/09/2009";
var date1= "04/09/2009";
var diff2 = new Date(Date.parse("03/12/2009")-
Date.parse("02/09/2009")).toLocaleDateString();
// var new_date = new Date (1970, 01, 01); // var diff3 = diff2.getDate(); alert (diff2);
</script>
<script language="JavaScript">
<!--
function dstrToUTC(ds) {
var dsarr = ds.split("/");
var mm = parseInt(dsarr[0],10);
var dd = parseInt(dsarr[1],10);
var yy = parseInt(dsarr[2],10);
return Date.UTC(yy,mm-1,dd,0,0,0);
}
function datediff(ds1,ds2) {
var d1 = dstrToUTC(ds1);
var d2 = dstrToUTC(ds2);
var oneday = 86400000;
return (d2-d1) / oneday;
}
// test cases are below
var a; var b;
a = "01/09/1999";
b = "01/10/1999";
document.write("From "+a+" to "+b+" is "+datediff(a,b)+" day(s)<br>");
a = "01/12/1999";
b = "01/19/1999";
document.write("From "+a+" to "+b+" is "+datediff(a,b)+" day(s)<br>");
a = "01/19/1999";
b = "01/12/1999";
document.write("From "+a+" to "+b+" is "+datediff(a,b)+" day(s)<br>");
a = "01/03/1999";
b = "01/13/1999";
document.write("From "+a+" to "+b+" is "+datediff(a,b)+" day(s)<br>");
a = "04/30/1999";
b = "05/01/1999";
document.write("From "+a+" to "+b+" is "+datediff(a,b)+" day(s)<br>");
a = "05/30/1999";
b = "06/01/1999";
document.write("From "+a+" to "+b+" is "+datediff(a,b)+" day(s)<br>");
a = "02/28/1999";
b = "03/01/1999";
document.write("From "+a+" to "+b+" is "+datediff(a,b)+" day(s)<br>");
a = "02/28/2000";
b = "03/01/2000";
document.write("From "+a+" to "+b+" is "+datediff(a,b)+" day(s)<br>");
a = "01/01/1999";
b = "12/31/1999";
document.write("From "+a+" to "+b+" is "+datediff(a,b)+" day(s)<br>");
a = "01/01/2000";
b = "12/31/2000";
document.write("From "+a+" to "+b+" is "+datediff(a,b)+" day(s)<br>");
a = "12/15/1999";
b = "01/15/2001";
document.write("From "+a+" to "+b+" is "+datediff(a,b)+" day(s)<br>");
// -->
</script>
date2 = 02/09/2009 is not considered to be a date. it works this way. First it devides 02/09, it returns 0.2222222222222222 and its been divided by 2009 (0.2222222222222222/2009). finally you got an result date2 = 0.0001106133510314695. same way it calculates the result for date1.
this is not a valid operation. If you wanted to define the date. make sure that, you placed the data in a right date format.
use either new Date() or Date.parse("02/09/2009")
Edit:
new Date(Date.parse("03/12/2009")-Date.parse("02/09/2009")).toLocaleDateString() Or
new Date(date1- date2).toLocaleDateString()
isnt that work..??
Edit :
may be this will work.. can u try this..
Date.parse("03/12/2009")-Date.parse("02/09/2009") / (24*60*60*1000)
and it returns 31 days
it seems working for me.. but in my time zone it took 03/12/2009 as 3rd month 11th day and year 2009
(24*60*60*1000) = Number of milliseconds per day
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With