我尝试使用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中使用这个功能会很棒。 任何支持都会感激不尽
答案 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");
答案 2 :(得分:0)
谢谢你们!它的工作,但处理日期框类型有点棘手。类型=&#34;日期&#34;对我不起作用,所以我使用type =&#34; text&#34;现在,它是您的展位样品中的一种混合物:
// Set spacing between pie slices
pieDataSet.setSliceSpace(5);