通过jquery使用datepicker获取输入值(timein)并将值添加到set(超时时间)

时间:2015-09-02 08:30:10

标签: javascript jquery datetimepicker

美好的一天, 我正在创建一个时间/超时机制,一旦用户通过下拉列表选择持续时间,就会自动设置超时(日期和时间)。

这是我的代码:

我初始化了输入框:

$('.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)。

enter image description here enter image description here

我想要完成的事情:

超时输入框应设置为time_in + duration = timeout或09/02/2015 4:30 PM + 12 = 09/03/2015 4:30 AM。

谢谢你,祝你今天过得愉快。

2 个答案:

答案 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);

});
});

DEMO