获取JS 2个日期之间的差异
问题描述:
目前我与返回我在这个格式的日期(created_at)的API时这种格式的日期和我可以从new Date()
收到的当前日期之间的差异。获取JS 2个日期之间的差异
而且差应在格式像这样的例子:
2 hours ago, 10 days ago.
它是一个内置的功能JS?或者我怎样才能做出这个计算并以适当的格式得到答案?
请帮忙。
答
下面的代码将工作,假设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) {
\t difference = difference/1000;
\t differenceUnit = "second";
\t
\t if(difference > 60) {
\t \t difference = difference/60;
\t \t differenceUnit = "minute";
\t \t if(difference > 60) {
\t \t \t difference = difference/60;
\t \t \t differenceUnit = "hour";
\t \t \t if(difference > 24) {
\t \t \t \t difference = difference/24;
\t \t \t \t differenceUnit = "day";
\t \t \t }
\t \t }
\t }
}
difference = difference.toFixed(0);
console.log("difference is: ", difference, (difference > 1 ? differenceUnit + "s" : differenceUnit))
我总是建议'moment.js'这些在JS各种各样的事情。本身做这件事相当麻烦。 –
你问的问题是重复的。在解析日期:[*为什么Date.parse给出不正确的结果?](https://stackoverflow.com/questions/2587345/why-does-date-parse-give-incorrect-results)在获取日期差异在“友好的“格式:[* Javascript模糊时间(例如'10分钟前'),精确秒数*](https://stackoverflow.com/questions/11479170/javascript-fuzzy-time-eg-10-minutes-ago-这就是合精确 - 秒)。 – RobG
实际上是一样的RobG。 请再读一遍我的问题。我在谈论日期时间格式的差异... –