2016-04-20 75 views
0

我嘗試使用jquery移動日期框來計算年齡,但從現在開始,就像很多描述中一樣。我有兩個日期:「出生」「死亡」,這個想法是從第二個開始減去第一個。JQuery移動數據包減去日期

<div class="ui-field-contain"> 
     <label>born</label> 
     <input type="text" data-role="datebox" name="born" id="born" min="1808-04-01" max="1995-12-30" data-options='{"mode":"flipbox"}' /> 
     </div> 
    <div class="ui-field-contain"> 
     <label>died</label> 
     <input type="text" data-role="datebox" name="death" id="death" min="1808-04-01" max="1995-12-30" data-options='{"mode":"flipbox"}' /> 
     </div> 

但我不知道如何處理這與jquery手機或JavaScript。 在cementery webbapp中有這個功能會很棒,我現在正在使用它。 任何支持將gratefull

回答

0

採取這裏看看 - https://jsfiddle.net/jdkahn90/vv6egb5s/

首先,我會建議使用一個輸入型的日期。然後你想將輸入轉換爲一個javascript日期對象。

function subtract() { 
var born = new Date(document.getElementById("born").value); 
var death = new Date(document.getElementById("death").value); 

有兩種方法可以將差異轉換爲年。 首先是找到毫秒差異併除以一年中的毫秒數。然而,閏年有一點警告。

var diff = death - born; 
var years = diff/(1000 * 60 * 60 * 24 * 365.25); 

二是找到年份,月份和日期的差異,然後只使用if語句進行調整。你聽起來更好聽。

var yearDiff = death.getFullYear() - born.getFullYear(); 
var monthDiff = death.getMonth() - born.getMonth(); 
if (monthDiff < 0) { 
    yearDiff--; 
} else if (monthDiff == 0) { 
    var dayDiff = death.getDate() - born.getDate(); 
    if (dayDiff < 0) { 
     yearDiff--; 
    }} 
0

要獲得從JQM DateBox控件調用.datebox('getTheDate')日期一旦你有2個JavaScript的日期對象,你可以減去他們拿到2個日期之間的毫秒數。

那麼這只是你想表達年齡的問題?對於剛剛多年@ jdkhan90首款具有Math.floor()選項得到歲整數:

var born = $("#born").datebox('getTheDate'); 
var death = $("#death").datebox('getTheDate'); 
var age = (death - born)/(1000 * 60 * 60 * 24 * 365.25); 
alert("Age at death: " + Math.floor(age) + " years"); 

DEMO

0

謝謝你們!它的工作,但處理日期框類型是一個棘手的問題。 type =「date」對我不起作用,所以我現在使用type =「text」,它是來自您展位的樣品的一種混合物:

<div data-role="main" class="ui-content"> 
    <p>Age - Calculator</p> 
     <br> 

    <div class="ui-field-contain"> 
     <label>Born:</label> 
     <input type="text" data-role="datebox" name="born" id="born" min="1808-04-01" max="1995-12-30" data-options='{"mode":"flipbox"}' /> 
     </div> 
<div class="ui-field-contain"> 
     <label>Died</label> 
     <input type="text" data-role="datebox" name="death" id="death" min="1808-04-01" max="1995-12-30" data-options='{"mode":"flipbox"}' /> 
     </div> 
     <button id="btnCalc">Calculate</button> 
$(document).on("pagecreate","#pagethree", function(){ 
    $("#btnCalc").on("click", function(e){ 
    var born = $("#born").datebox('getTheDate'); 
    var death = $("#death").datebox('getTheDate'); 
    var diff = death - born; 
    var age = diff/(1000 * 60 * 60 * 24 * 365.25); 
    alert("He/she was" + Math.floor(age) + " years old"); 
    }); 
})