流行的漫画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");
时间将返回一个巨大的数字(毫秒),我知道这个等式并不意味着处理毫秒 – 那么如何使用JavaScript进行高级日期等式?
最佳答案
你犯了3个错误:
> p应该是0到1之间的小数,表示完成的进度比率.
>结果是:
T =(当前日期) – (以年为单位的数字)
不
T =(当前日期 – 数字),以年为单位
你需要先计算(e ^ … -e ^ 3),然后从t中减去那么多年
>你已经忘记了原始公式中的3
编辑:
这里有一些working code as a JSFiddle,虽然Javascript已经完成约75%的约会