天天爱资讯

首页 > 计算机与编程 > java >

js计算相差天数-java-计算机与编程-天天爱资讯

js计算相差天数-java-计算机与编程-天天爱资讯


  

DateDiff(

DateDiff(

dateTimeFormatter(data.agreementEndDate),

dateTimeFormatter(getNowFormatDate()))



/**

* *************格式化时间开始******************

*/

function dateTimeFormatter(val) {


if (val == undefined || val == "")

return "";

var date;

if (val instanceof Date) {

date = val;

} else {

date = new Date(val);

}

var y = date.getFullYear();

var m = date.getMonth() + 1;

var d = date.getDate();

var dateStr = y + '/' + (m < 10 ? ('0' + m) : m) + '/'

+ (d < 10 ? ('0' + d) : d);

return dateStr;

}

/**

* *************格式化时间解暑 ******************

*/ 





/**

* *************获取当前时间******************

*/

function getNowFormatDate() {

   var date = new Date();

   var seperator1 = "/";

   var seperator2 = ":";

   var month = date.getMonth() + 1;

   var strDate = date.getDate();

   if (month >= 1 && month <= 9) {

       month = "0" + month;

   }

   if (strDate >= 0 && strDate <= 9) {

       strDate = "0" + strDate;

   }

   var currentdate = date.getFullYear() + seperator1 + month + seperator1 + strDate

           + " " + date.getHours() + seperator2 + date.getMinutes()

           + seperator2 + date.getSeconds();

   return currentdate;

}

/**

* *************获取当前时间结束******************

*/



/**

* *************计算相差天数开始******************

*/

function DateDiff(sDate1, sDate2) { // sDate1和sDate2是yyyy-MM-dd格式

var aDate, oDate1, oDate2, iDays;

aDate = sDate1.split("/");

oDate1 = new Date(aDate[1] + '/' + aDate[2] + '/' + aDate[0]); // 转换为yyyy-MM-dd格式

aDate = sDate2.split("/");

oDate2 = new Date(aDate[1] + '/' + aDate[2] + '/' + aDate[0]);

iDays = parseInt(Math.abs(oDate1 - oDate2) / 1000 / 60 / 60 / 24); // 把相差的毫秒数转换为天数

return iDays; // 返回相差天数

}

/** *************计算相差天数结束 ****************** */




例如:

复制代码代码如下:


var date1 = new Date("2013-11-29");
var date2 = new Date("2013-11-29");
console.log(date1 == date2); //false


这里,date1和date2看上去是一样的,但是运行 date1 == date2 返回的却是false。这是因为date1、date2都是对象,类型为引用类型,所以如果需要比较他们,需要去比较他们的字面量值,而不是单纯的用 == 来比较。


如果想比较两个date是否相等,可以这么写

复制代码代码如下:


var date1 = new Date("2013-11-29");
var date2 = new Date("2013-11-29");
console.log(date1.getTime() == date2.getTime()); //true


用getTime()方法,就可以返回日期对应的数值,然后比较就可以了。


其实,还有一种方法也可以比较日期。

复制代码代码如下:


var date1 = new Date("2013-11-29");
var date2 = new Date("2013-11-29");
console.log(date1 - date2 == 0); //true


这里用date1减去date2,即可以得到它们之间的时间差,如果为0,那么肯定是相等的。