【发布时间】:2018-05-28 16:27:23
【问题描述】:
假设我有这样的事情:
var time01 = new Date();
var time02 = new Date(2015, 0, 0, 0, 0, 0);
var time03 = new Date(2022, 0, 0, 0, 0, 0);
如果我想计算从time02到今天的时间,以及从现在到time03还剩多少时间,我应该这样做:
var passed01 = time01.getTime() - time02.getTime();
var passed02 = time03.getTime() - time01.getTime();
然后,我想让它可读,我做到了:
var readable01 = new Date(passed01);
var readable02 = new Date(passed02);
但它给了我大约 1970 年的一年......我怎样才能得到类似的输出:“3 年”或“3 年 15 天 17 分 23 秒”或类似的东西?
【问题讨论】:
-
在第一行中,您要减去 2015 年的当前时间,所以我猜 javascript 确实会返回一个奇数日期,因为 javascript afaik 中没有“负”日期。
-
@Tiramonium - JS 中有负日期;让 d = 新日期(-1);控制台.log(d);输出:1969-12-31T23:59:59.999Z
-
抱歉 :) 你说得对……我只是从记忆中输入的。但是还是一样……我会更新代码的。
-
好吧,我的意思实际上是“你为什么想要一个否定的日期开始”,但不要介意。试着看看这个答案:stackoverflow.com/a/3067896/1361831
-
@bokuyaza - 我建议多搜索一下 js 时间/日期函数。您正在尝试做的事情相当简单并且在过去完成。我建议将日期转换为秒,进行计算然后转换为可读格式:[link]stackoverflow.com/questions/45124401/…let d = new Date().getTime()
标签: javascript jquery date datetime