javascript [日付の差を计算]第二引数の日付から第一引数の日付を引いた差を数値で返します。差の単位を省略した场合は差を日付単位で返します。
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了javascript [日付の差を计算]第二引数の日付から第一引数の日付を引いた差を数値で返します。差の単位を省略した场合は差を日付単位で返します。相关的知识,希望对你有一定的参考价值。
/**
* 2つの日付の差を計算する
* @param {Date} date1 日付1
* @param {Date} date2 日付2
* @param {String} [interval] 差の単位
* @return {Number} 2つの日付の差
*/
var dateDiff = function (date1, date2, interval) {
var diff = date2.getTime() - date1.getTime();
switch (interval) {
case 'YYYY':
var d1 = new Date(date1.getTime());
var d2 = new Date(date2.getTime());
d1.setYear(0);
d2.setYear(0);
var i;
if (diff >= 0) {
i = d2.getTime() < d1.getTime() ? -1 : 0;
} else {
i = d2.getTime() <= d1.getTime() ? 0 : 1;
}
return d2.getYear() - date1.getYear() + i;
break;
case 'MM':
var d1 = new Date(date1.getTime());
var d2 = new Date(date2.getTime());
d1.setYear(0);
d1.setMonth(0);
d2.setYear(0);
d2.setMonth(0);
var i;
if (diff >= 0) {
i = d2.getTime() < d1.getTime() ? -1 : 0;
} else {
i = d2.getTime() <= d1.getTime() ? 0 : 1;
}
return ((date2.getYear() * 12) + date2.getMonth()) - ((date1.getYear() * 12) + date1.getMonth()) + i;
break;
case 'hh':
return ~~(diff / (60 * 60 * 1000));
break;
case 'mm':
return ~~(diff / (60 * 1000));
break;
case 'ss':
return ~~(diff / 1000);
break;
default:
return ~~(diff / (24 * 60 * 60 * 1000));
}
};
/**
* e.g.
*/
// dateDiff(new Date('2014/1/1'), new Date('2012/1/2')); // 1
// dateDiff(new Date('2014/1/1 12:00:00'), new Date('2012/1/2 00:00:00')); // 0 翌日だけど24時間経っていないので0
// dateDiff(new Date('2014/1/1'), new Date('2013/1/1'), 'YYYY'); // -1
以上是关于javascript [日付の差を计算]第二引数の日付から第一引数の日付を引いた差を数値で返します。差の単位を省略した场合は差を日付単位で返します。的主要内容,如果未能解决你的问题,请参考以下文章
javascript [日付のフォーマット处理]日付をフォーマットして返します。フォーマットを省略した场合は2018/03/10(土)21:51:48.578のような形で返します。关数化しておくとフォ
sh ログ中の日付の変换
sql [SQLServer]日付の文字列変换(CONVERT,111,108,120)
html 离子日期时间で日付の入力栏を作るサンプル
csharp log4net的を各クラスで毎回GetLoggerするか,上下文内の记录器をGetLoggerして使いまわすかでコストの差を见てみた。
Visualforceで数値や日付のフォーマットを指定して表示するには?