javascript - 出于某种原因,答案总是 NaN,找不到两个日期之间的差异
问题描述
我发现今天的日期是错误的还是 st?我之前做过一个类似的代码(使用 input.value 而不是静态日期)并且它有效。我显然是初学者,所以这可能是一个非常简单的错误
function calculate2() {
var date1 = new Date('15/02/2001');
var date2 = new Date();
var timediff = Math.abs(date2.getTime() - date1.getTime());
var days = Math.round(timediff / (1000 * 3600 * 24));
var months = Math.round (days / 31);
var years = Math.round (months / 12);
var hours = Math.round (days * 24);
var minutes = Math.round (hours * 60);
var seconds = Math.round (minutes * 60);
var weeks = Math.round (days / 7);
var result = document.getElementById('result');
result.value = years;
var result1 = document.getElementById('result1');
result1.value = months;
var result6 = document.getElementById('result6');
result6.value = weeks;
var result2 = document.getElementById('result2');
result2.value = days;
var result3 = document.getElementById('result3');
result3.value = hours;
var result4 = document.getElementById('result4');
result4.value = minutes;
var result5 = document.getElementById('result5');
result5.value = seconds;
}
<form>
<input type="result" id="result" name="result" readonly>
<input type="result" id="result1" name="result" readonly>
<input type="result" id="result6" name="result" readonly>
<input type="result" id="result2" name="result" readonly>
<input type="result" id="result3" name="result" readonly>
<input type="result" id="result4" name="result" readonly>
<input type="result" id="result5" name="result" readonly>
</form>
解决方案
new Date('15/02/2001')
导致无效日期。在无效日期调用 .getTime 会返回 NaN
从字符串创建日期是一件棘手的事情,因为浏览器解析字符串的方式之间存在不一致。我建议以另一种方式创建日期。例如,构造函数允许您传递年、月、日的整数:
new Date(2001, 2, 15)
推荐阅读
- javascript - 从单选按钮获取值 - "input[name='gender']:checked" 返回 null
- ethereum - 如果客户端没有安装元掩码(或其他),有没有办法从智能合约中读取?
- python - LinkedIn API - 组织品牌有时限仅返回时间范围
- python - 从输入框获取()返回“无”
- java - 使用 Streams 打印 PriorityQueue 的值会产生不正确的结果
- ruby-on-rails - 使用与常规连接不同的用户进行 Rails 迁移
- c# - 我可以获得 Firebase 实时数据库数据检索的进度吗?
- reactjs - 试图让 setState 以某种方式同步工作
- apache-spark - 在 Pyspark 中的数据框中转换列表(同一行,不同列)
- comments - 我可以让 CLion 以不同于其他评论的方式突出显示 doxygen 评论吗?