JQuery移动数据库减去日期

时间:2016-04-20 16:19:22

标签: javascript jquery jquery-mobile

我尝试使用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 mobile或javascript来处理这个问题。 在我现在正在工作的cementery webbapp中使用这个功能会很棒。 任何支持都会感激不尽

3 个答案:

答案 0 :(得分:0)

看看这里 - https://jsfiddle.net/jdkahn90/vv6egb5s/

首先我建议使用输入类型Date。然后,您要将输入转换为javascript Date对象。

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 then语句进行调整。听起来更好听。

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--;
    }}

答案 1 :(得分: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

答案 2 :(得分:0)

谢谢你们!它的工作,但处理日期框类型有点棘手。类型=&#34;日期&#34;对我不起作用,所以我使用type =&#34; text&#34;现在,它是您的展位样品中的一种混合物:

// Set spacing between pie slices
   pieDataSet.setSliceSpace(5);