jquery日期和时间计算Firefox NaN
问题描述:
我想计算某个日期之间的日期,我使用日期和时间。在铬工作正常,但在Firefox给我“NaN”,没有测试它,但我认为这将是同样的结果。 jquery日期和时间计算Firefox NaN
<form action="" enctype="multipart/form-data" id="userForm" method="post">
<table border="0">
<tbody>
<tr class="rsform-block rsform-block-paemimodata">
<td>Delivery Date (*)</td>
<td><input type="text" class="datepicker rsform-input-box hasDatepicker" id="paemimodata" name="form[paemimodata]" size="20" value="2013-05-15"></td>
</tr>
<tr class="">
<td>Time (Hours) (*)</td>
<td><select class="rsform-select-box" id="paemimolaikas" name=""><option value="01">01</option>
<option value="02">02</option>
<option value="03">03</option>
<option value="04">04</option>
<option value="05">05</option>
<option value="06">06</option>
<option value="07">07</option>
<option value="08">08</option>
<option value="09">09</option>
<option value="10">10</option>
<option value="11">11</option>
<option value="12">12</option>
<option value="13">13</option>
<option value="14">14</option>
<option value="15">15</option>
<option value="16">16</option>
<option value="17">17</option>
<option value="18">18</option>
<option value="19">19</option>
<option value="20">20</option>
<option value="21">21</option>
<option value="22">22</option>
<option value="23">23</option>
<option value="24">24</option>
</select>
</td>
</tr>
<tr class="">
<td>Time (minutes)</td>
<td><select class="rsform-select-box" id="paemimolaikasmin" name="">
<option value="05">05</option>
<option value="10">10</option>
<option value="15">15</option>
<option value="20">20</option>
<option value="25">25</option>
<option value="30">30</option>
<option value="35">35</option>
<option value="40">40</option>
<option value="45">45</option>
<option value="50">50</option>
<option value="55">55</option>
<option value="00">00</option>
</select>
</td>
返回日期() 时间(小时)() 时间(分钟)
</form>
</xmp>
Java脚本
<pre>
jQuery(function ($) {
function coundays() {
var starter = $('#paemimodata').val();
var starterhour = $('#paemimolaikas').val();
var startermin = $('#paemimolaikasmin').val();
var ender = $('#grazinimodata').val();
var enderhour = $('#grazinimolaikas').val();
var endermin = $('#grazinimolaikasmin').val();
var fullstarter = starter + ' ' + starterhour + ':' + startermin + ':00';
var fullender = ender + ' ' + enderhour + ':' + endermin + ':00';
var start = new Date(fullstarter);
var end = new Date(fullender);
var diff = new Date(end - start);
var days = diff/1000/60/60/24;
alert(days);
};
coundays();
$('#userForm').on('change', function() {
coundays();
});
});
</pre>
的js fidlle
http://jsfiddle.net/dezignas/j2HGw/13/
我在做什么错在这里?
答
确保传递一个字符串到新的日期是ISO 8601标准,例如“2013-04-05T14:30”。那么这应该适用于所有现代浏览器。在你的情况下,我认为T在日期和时间之间缺失。
+0
谢谢,指向右方添加字符串“2013-04-05T14:30:00Z” – andy 2013-05-08 10:47:32
答
日期应该是RFC2822兼容Mozilla的文档(https://developer.mozilla.org/en-US/docs/JavaScript/Reference/Global_Objects/Date/parse)的规定
更改日期分配给此:
var fullstarter = starter + 'T' + starterhour + ':' + startermin + ':00';
var fullender = ender + 'T' + enderhour + ':' + endermin + ':00';
您是否尝试过使用[parseInt](http://www.w3schools.com/jsref/jsref_parseint.asp)? – 2013-05-07 20:18:53