JavaScript 日期月份

标签 javascript date

我正在创建一个 jQuery UI slider ,需要创建从 2015 年 1 月 19 日到今天 2017 年 5 月 6 日的日期范围。

我计算出这些日期之间有 777 天。

但是,当我在 JavaScript 中执行此操作时,时间为 30 天。

var startDate = new Date(2015, 1, 19);
var endDate = new Date();
var timeDiff = Math.abs(endDate.getTime() - startDate.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24));

$("#result").html(diffDays);

$("#diff").html(777 - diffDays);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
JS: <span id="result"></span><br>
Actual: 777<br>
Difference: <span id="diff"></span>

我的代码没有发现任何错误,因为我在其他地方使用过它并且它运行正常。

最佳答案

JavaScript 中的月份是从零开始的,因此一月是 0,而不是 1

var startDate = new Date(2015, 0, 19);
var endDate = new Date();
var timeDiff = Math.abs(endDate.getTime() - startDate.getTime());
var diffDays = Math.floor(timeDiff / (1000 * 3600 * 24));

$("#result").html(diffDays);

$("#diff").html(777 - diffDays);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
JS: <span id="result"></span><br>
Actual: 777<br>
Difference: <span id="diff"></span>

另请注意,我将 ceil 更改为 Floor

关于JavaScript 日期月份,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42630384/

相关文章:

sql - 我应该在 PostgreSQL 中将 org.joda.time.YearMonth 存储为日期还是两列?

r - 列表数据框类上匹配日期的百分比计算

javascript - 如果浏览器关闭,Google Chrome 推送通知无法正常工作?

javascript - 如何让正则表达式适用于 mm/dd/yyyy 和 yyyy-mm-dd 格式

javascript - HTML - 如何在 OnClick 事件中更改按钮背景颜色

javascript - 错误 : Cannot find a differ supporting object '[object Object]' of type 'object' . NgFor 只支持绑定(bind)到 Iterables

javascript - 如何在 Javascript 中将(年、月、日)转换为扩展年份日期格式并处理 0 到 99 年

ruby-on-rails - Ruby 和 Rails "Date.today"格式

javascript - socket.io.js 未加载

javascript - 模块模式内的回调函数中的 'this'指的是什么