如何计算出两个日期之间的年数和剩余天数
How to work out the years and left over days between 2 dates
我想算出两个日期之间的年份和天数。一个例子是"从第二次世界大战至今还有多少年和剩余的日子?"我可以算出总天数,但我正在努力确保剩余的天数是正确的。我也没有考虑闰年,因为我不知道从哪里开始。
http://jsfiddle.net/aw5rvpk0/16/jQueryfunction parseDate(str) {
var mdy = str.split('/')
return new Date(mdy[2], mdy[0]-1, mdy[1]);
}
function daydiff(first, second) {
return (second-first)/(1000*60*60*24);
}
var totalDayCount = Math.round((daydiff(parseDate($('#first').val()), parseDate($('#second').val()))));
var yearCount = Math.round((totalDayCount / 365) * 10) / 10;
var dayCountMinusYears = Math.round((totalDayCount - (yearCount * 365)));
$('.years').text(yearCount);
$('.days').text(dayCountMinusYears);
HTML <input id="first" value="1/1/2000"/>
<input id="second" value="6/10/2005"/>
<div>Year Count <span class="years">0</span></div>
<div>Day Count Minus The Years Count <span class="days">0</span></div>
尝试使用.getTime()
, String.prototype.split()
, .toFixed()
var inputs = $("input");
var then = new Date(inputs.eq(0).val()).getTime();
var now = new Date(inputs.eq(1).val()).getTime();
var years = ((now - then) / 86400000 / 365).toFixed(2);
$(".years").text(years.split(".")[0]);
$(".days").text(365 * Number("." + years.split(".")[1]));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<input id="first" value="1/1/2000"/>
<input id="second" value="6/10/2005"/>
<div>Year Count <span class="years">0</span></div>
<div>Day Count Minus The Years Count <span class="days">0</span></div>
jsfiddle http://jsfiddle.net/aw5rvpk0/17/
编辑,更新
那工作,但我来自英国,所以我需要转换日期格式一旦它被存储在变量中。这可能吗?
尝试使用String.prototype.split()
, Array.prototype.slice()
, Array.prototype.reverse()
, Array.prototype.join()
, String.prototype.concat()
将input
转换为"dd/mm/yy"格式
var inputs = $("input");
var then = inputs.eq(0).val();
then = new Date(then.split("/").slice(0,2).reverse()
.join("/").concat("/" + then.slice(-4))).getTime();
var now = inputs.eq(1).val();
now = new Date(now.split("/").slice(0,2).reverse()
.join("/").concat("/" + now.slice(-4))).getTime();
console.log(then, now)
var years = ((now - then) / 86400000 / 365).toFixed(5);
$(".years").text(years.split(".")[0]);
$(".days").text(365 * Number("." + years.split(".")[1]));
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<input id="first" value="30/01/2000"/>
<input id="second" value="31/01/2001"/>
<div>Year Count <span class="years">0</span></div>
<div>Day Count Minus The Years Count <span class="days">0</span></div>
jsfiddle http://jsfiddle.net/aw5rvpk0/36/
相关文章:
- 函数参数中的数据与指定变量之间的任何性能差异
- 全局变量和全局对象的属性之间有什么区别吗
- java.net和javascript之间正则表达式的差异
- 希望创建一个显示日期+5天和日期+10天之间交付的javascript
- 我如何用Javascript计算两个日期之间的年、月和天的差异
- 如何区分两天之间的日期
- 以 yyyy-mm-dd 格式的两天之间的差异(以天为单位)
- 以天为单位的 2 个 ember 日期时间对象之间的差异
- Javascript - 在 2 天有效之间获取多个日期条目(2 次)
- 2 个日期之间的 JavaScript 天返回错误
- 获取两个日期之间的所有日期,并仅返回该月的第一天
- 计算天与天之间的间隔
- 如何使用moment.js获得年、月和天的2个日期之间的差异
- 两天之间的计算
- Javascript时间在特定的一天2次之间,然后写开
- 如何使用JavaScript在两天之间获得适当的差值
- 在javascript中查找给定两天之间存在的天数,月份和年份
- 在javascript中只获取两天之间的工作日数
- 计算一周中两天之间的夜晚数
- 计算2天之间的时差,转换为UTC