javascript - 在两个日期之间获得每日价格上涨的 Javascript 是什么?
问题描述
我已经搜索了一段时间,甚至找不到任何涉及这个主题的人。
在 4 月 1 日和 8 月 1 日之间,我的 900 美元价格慢慢接近 1500 美元。这大约是每天 5 美元,公式为:
ROUND(1500 - (600 * ((截止日期 - 今天) / (截止日期 - 开始)))
但是我如何用 javascript 和 HTML 来表达它,以便我可以用“今天你必须支付 920 美元”这样的句子来写出来。
这是我目前所处的位置,但我无法弄清楚如何将今天的日期归零以实现正确的计算:
<div id="foo"></div>
<script type="text/javascript">
function getDayDiff(a, b) {
return (a - b) / 8.64e7;
}
function getPayAmount(DEADLINE, TODAY, START) {
return Math.round(1500 - (600 * getDayDiff(DEADLINE, TODAY) / getDayDiff(DEADLINE, START)));
}
document.getElementById("foo").innerHTML = "Today you'll have to pay $" + getPayAmount(new Date(2021, 08, 1), new Date(), new Date(2021, 4, 1));
</script>
解决方案
首先计算days
(从unix时间开始),使用getTime()
(将给出毫秒)并使用相同的公式。
const days = (date) => Math.ceil(date.getTime() / (24 * 60 * 60 * 1000));
const DEADLINE = days(new Date("2021-08-01"));
const START = days(new Date("2021-04-01"));
const TODAY = days(new Date());
const res = Math.round(1500 - 600 * ((DEADLINE - TODAY) / (DEADLINE - START)));
console.log(res);
document.querySelector('.adbox.adred').append(`Today's Rate ${res}`)
推荐阅读
- c++ - 如何将混合(asm、C++)源代码编译成 32 位程序?
- javascript - JavaScript 中的实例变量是什么?
- android - 有什么方法可以让 Ripple 效果的颜色在 Android 中是动态的?
- c - 我应该如何修复这个有趣的 getdelim / getline(动态内存分配)错误?
- json - 如何提高在 Haskell 中使用 JSON 的便利性?
- vue.js - 无法获取 Vuex 突变或操作以将数据传递给状态
- html - 响应式图像代码未获取适当分辨率的图像
- php - 自定义 PHP 添加以集成 Xero
- sql-server - 如何将字符串与从数据库返回的变量连接起来以生成 URL
- android - Android 在哪里存储动态模块 APK?