簡體   English   中英

如何計算年份和兩個日期之間剩余的天數

[英]How to work out the years and left over days between 2 dates

我正在嘗試計算兩個日期之間的年日。 一個例子是“自第二次世界大戰以來已經過去了多少年,還剩下幾天?”。 我可以算出總天數,但我正在努力確保剩余天數正確。 我也不考慮leap年,因為我不知道從哪里開始。

http://jsfiddle.net/aw5rvpk0/16/

jQuery的

function 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”格式String.prototype.concat()

 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/

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM