在JavaScript中获取Bootstrap Datetimepicker的值

30

我需要在JavaScript函数中获取Datetimepicker的值。我尝试了以下代码,但是它并不起作用:

$("#date").click( function(){
    alert(document.getElementById('datetimepicker1').value);
});

它给了我“未定义”


请参考以下网址以了解使用方法:http://tarruda.github.io/bootstrap-datetimepicker/ - karthikr
你从哪里获取到日期时间选择器的? - Chris Moutray
使用的是哪个日期时间选择器?从谷歌搜索中获得的第一个,我看到您应该使用:$(“#datetimepicker1”).data(“datetimepicker”)。getDate(); - Ian
@ Chris Moutray:从这里开始 http://tarruda.github.io/bootstrap-datetimepicker/ - dxtr
8个回答

52

可以使用以下方法之一:

$("#datetimepicker1").data("datetimepicker").getDate();

或者(从查看页面源代码来看):
$("#datetimepicker1").find("input").val();

返回的值将是一个Date(对于上面的第一个示例),因此您需要自己格式化它。
var date = $("#datetimepicker1").data("datetimepicker").getDate(),
    formatted = date.getFullYear() + "-" + (date.getMonth() + 1) + "-" + date.getDate() + " " + date.getHours + ":" + date.getMinutes() + ":" + date.getSeconds();
alert(formatted);

此外,您可以将格式设置为属性:

<div id="datetimepicker1" class="date">
    <input data-format="yyyy-MM-dd hh:mm:ss" type="text"></input>
</div>

你可以使用$("#datetimepicker1").find("input").val();来获取值。


1
非常感谢Ian,现在它给了我这个时间:2013年5月15日21:45:37 GMT+0100(WEST) 我需要更多帮助将其转换为MySQL格式(yyyy-mm-dd hh:mm:ss) 抱歉,我对JavaScript非常陌生。 - dxtr
@Dxtr 很酷,很高兴能帮到你 :) 我再次更新了答案,可能更好 - 在 data-format 属性中设置格式 - 它应该自动显示在文本框中。 - Ian
如果您不介意,我还有一个问题: 如何将javascript变量传递给jquery.get,就像这样 Query.get('data.php&var1='var11, null, function(tsv) { - dxtr
如果var11包含您想要在请求中传递的日期时间,您可以使用以下代码:jQuery.get('data.php?var1=' + encodeURIComponent(var11), null, function - Ian
我正在尝试从datetimepicker获取日期,您的第一行代码不起作用,我只能将其作为字符串获取。下面答案中的建议也是错误的,不起作用。你怎么能说你得到了这个日期? - ObedMarsh
$("#item_location_form #vendor_cancel_date").find("input").val() 返回 datetimepicker 的值。 - Mohamed Raza

26

看起来文档已经更新了。

现在应该使用:$("#datetimepicker1").data("DateTimePicker").date()

注意:这样做会返回一个Moment对象,而不是一个Date对象。


10

5

或者尝试以下:

$("#datetimepicker").data().date;

3

由于返回值已更改,$("#datetimepicker1").data("DateTimePicker").date() 现在会像Alexandre Bourlier所述一样返回一个moment对象:

文档似乎已经升级了。

现在应该使用:$("#datetimepicker1").data("DateTimePicker").date()。

注意: 这样做将返回一个Moment对象而不是Date对象

因此,我们必须使用 .toDate() 将这个语句转换成日期格式:

$("#datetimepicker1").data("DateTimePicker").date().toDate();


2

我正在使用最新的Bootstrap 3 DateTime Picker (http://eonasdan.github.io/bootstrap-datetimepicker/)。

以下是DateTime Picker内联使用的方法:

var selectedDate = $("#datetimepicker").find(".active").data("day");

上面返回的是:2017年3月23日。

0

我使用Bootsrap Datetimepiker,它对我很有效,它返回与日期选择器输入框中显示的值相同的值,例如2019-04-11

$('#myDateTimePicker').on('click,focusout', function (){
    var myDate = $("#myDateTimePicker").val();
    //console.log(myDate);
    //alert(myDate);
});

-1

我尝试了上述所有方法,但是没有以相同的格式正确获取值,然后我找到了这个。

$("#datetimepicker1").find("input")[1].value;

以上代码将以与日期时间选择器相同的格式返回值。

这可能会在未来帮助你们。

希望这有所帮助。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接