當我們看到這一篇文章的時候我第一個想法就是太厲害了,我原以為時間的相加減只會出現在數學里面或者是地理里面有關設計的學科,并且這個時間的相減還很有可能把我弄得暈頭轉向的,但是沒有想到的是原來JS特效代碼也需要利用日期時間來相減。
// 說明:兩個時間相減// 參數:JS的Date類型,或者 string 類型,格式為:yyyy-MM-dd HH:mm:ss
// 返回: date1-date2的秒數
var substractDate = function(date1, date2){
var type1 = typeof date1;
var type2 = typeof date2;
if (type1 == 'string')
{
date1 = new Date(date1);
}
if (type2 == 'string')
{
date2 = new Date(date2);
}
return (date1 - date2) / 1000;
}
測試結果,如圖所示:
根據數學知識:
1天=24小時
1小時=60分
1分=60秒
來推導出,相差的分鐘數,小時,天數
4.2 兩個日期相減——月份
兩個日期相差的月份,不能簡單的以1個月有多少天來計算,因為有的月份有30天,有的有31天。所以是下面這種計算方式。相差的年份的計算可以參考下面這種方式。
代碼如下:
var getDiffMonths = function(date1, date2)
{
if (!date1 instanceof Date){
console.error('param date1 is not Date');
}
if (!date2 instanceof Date){
console.error('param date2 is not Date');
}
var months1 = date1.getFullYear() * 12 + date1.getMonth();
var months2 = date2.getFullYear() * 12 + date2.getMonth();
return months1 - months2;
}
測試結果,如圖所示: