'落后'xkcd

Chr*_*her 5 javascript math date

流行的漫画xkcd提出了将时间完成转换为日期的等式:

落后于时间

我一直试图在JavaScript中做同样的事情,尽管我一直在努力-Infinity.这是代码:

var p = 5; // Percent Complete 
var today = new Date(); 
today = today.getTime(); 
var t;
t = (today) - (Math.pow(Math.E, (20.3444 * Math.pow(p,3))) -
Math.pow(Math.E,3));
document.write(t + " years");
Run Code Online (Sandbox Code Playgroud)

时间将返回一个巨大的数字(毫秒),我知道这个等式并不意味着处理毫秒 - 那么如何使用JavaScript进行高级日期等式?

Gar*_*eth 2

你犯了3个错误:

\n\n
    \n
  1. p应为 0 到 1 之间的小数,表示完成进度的比率。
  2. \n
  3. 结果是:
    \n T = (current date) - (a number in years)
    \n不是
    \n T = (current date - a number) in years
    \n你需要先计算(e^\xe2\x80\xa6-e^3)然后减去那么多年t
  4. \n
  5. 你忘记了+3原来公式中的a
  6. \n
\n\n

编辑:

\n\n

这里有一些作为 JSFiddle 的工作代码,尽管 Javascript 在大约完成了 75% 时就已经过时了

\n