如何找到两个日期之间的差异?
通过使用Date对象及其毫秒值,可以计算出差异:
var a = new Date(); // Current date now. var b = new Date(2010, 0, 1, 0, 0, 0, 0); // Start of 2010. var d = (b-a); // Difference in milliseconds.
您可以通过将毫秒除以1000来将秒转换为秒,然后将结果转换为整数来获得秒数(作为整数/整数):(除去代表毫秒的小数部分):
var seconds = parseInt((b-a)/1000);
然后可以minutes通过除以seconds60并将其转换为整数,然后hours除以minutes60并将其转换为整数,然后以相同的方式获得更长的时间单位来获得整数。由此,可以创建一个功能,以时间单位的最大值获得一个较低的单位,其余的较低的单位:
minutes
seconds
hours
function get_whole_values(base_value, time_fractions) { time_data = [base_value]; for (i = 0; i < time_fractions.length; i++) { time_data.push(parseInt(time_data[i]/time_fractions[i])); time_data[i] = time_data[i] % time_fractions[i]; }; return time_data; }; // Input parameters below: base value of 72000 milliseconds, time fractions are // 1000 (amount of milliseconds in a second) and 60 (amount of seconds in a minute). console.log(get_whole_values(72000, [1000, 60])); // -> [0,12,1] # 0 whole milliseconds, 12 whole seconds, 1 whole minute.
如果您想知道上面为第二个Date对象提供的输入参数是什么,请在下面查看它们的名称:
new Date(<year>, <month>, <day>, <hours>, <minutes>, <seconds>, <milliseconds>);
如该解决方案的注释中所述,除非您希望代表的日期是必需的,否则您不必提供所有这些值。