在js中获得2个日期之间的差异

时间:2017-06-18 19:00:40

标签: javascript jquery api date

目前我正在使用API​​,它以这种格式返回一个日期(created_at):

Y-m-dTH-m-sZ.

实际上我无法弄清楚如何计算这种日期格式与我可以从new Date()收到的当前日期之间的差异。

对于例如:

,区别应该是这样的格式
2 hours ago, 10 days ago.

它是JS中的内置函数吗?或者我如何进行此计算并以适当的格式得到答案?

请帮忙。

1 个答案:

答案 0 :(得分:0)

下面的代码可以使用假设dateB在dateA之后,否则差异将是负数,你必须处理它。

对你来说这可能是一个很好的开端,遗憾的是没有内置任何内容,因为你试图找到差异(以毫秒为单位)并将其转换为可能会有所不同的统一。

祝你好运,希望它有所帮助。

var dateA = new Date("07/06/2017");
var dateB = new Date("10/06/2017");

var difference = dateB - dateA;

var differenceUnit = "milisecond";

if(difference >= 1000) {
	difference = difference/1000;
	differenceUnit = "second";
	
	if(difference > 60) {
		difference = difference/60;
		differenceUnit = "minute";

		if(difference > 60) {
			difference = difference/60;
			differenceUnit = "hour";

			if(difference > 24) {
				difference = difference/24;
				differenceUnit = "day";
			}
		}
	}
}

difference = difference.toFixed(0);

console.log("difference is: ", difference, (difference > 1 ? differenceUnit + "s" : differenceUnit))