美好的一天, 我正在创建一个时间/超时机制,一旦用户通过下拉列表选择持续时间,就会自动设置超时(日期和时间)。
这是我的代码:
我初始化了输入框:
$('.time_in, .time_out').datetimepicker({
stepping:30
});
然后触发更改:
$('.select_book_type').change(function(){
var x = this.value;
for (var i = 0; i < time_rate.length; i++)
{
if(x == time_rate[i].id)
{
console.log(time_rate[i].rate);
var x = $(this).closest('tr');
x.find('.rate').val(time_rate[i].rate); //sets the rate of the room
//this part is my problem
var time_in = x.find('.time_in').val();
x.find('.time_out').val(time_in+time_rate[i].duration);
}
else if(x==null||x==0)
{
var x = $(this).closest('tr');
x.find('.rate').val(0);
}
}
});
据说我正在尝试使用类.time_in
获取输入的值作为我的time_rate[i].duration
添加的值(例如,值= 12)但是发生了什么我不能获取.time_in
的值,以便将超时值设置为time_rate[i].duration
(例如12)。
我想要完成的事情:
超时输入框应设置为time_in + duration = timeout
或09/02/2015 4:30 PM + 12 = 09/03/2015 4:30 AM。
谢谢你,祝你今天过得愉快。
答案 0 :(得分:2)
您需要在添加之前将时间转换为毫秒,然后需要将总和转换为日期字符串
var time_inMilli=new Date(time_in).getTime();
var time_outMilli = time_inMilli+(time_rate[i].duration*3600*1000);
var time_out = new Date(time_outMilli).toLocaleString();
x.find('.time_out').val(time_out);
答案 1 :(得分:1)
试试这个
HTML
<div class="container">
<div class='col-md-5'>
<div class="form-group">
<div class='input-group date'>
<input id='datetimepicker6' type='text' class="form-control" /> <span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
JS
var MinuteToAdd = 30
$(function () {
$('#datetimepicker6').datetimepicker();
$('#datetimepicker7').datetimepicker({
useCurrent: false //Important! See issue #1075
});
$("#datetimepicker6").on("dp.change", function (e) {
$('#datetimepicker7').data("DateTimePicker").minDate(e.date);
$('#datetimepicker7').data("DateTimePicker").date(e.date.add(MinuteToAdd,'m'));
});
$("#datetimepicker7").on("dp.change", function (e) {
$('#datetimepicker6').data("DateTimePicker").maxDate(e.date);
});
});