Bootstrap日期时间选择器设置日期。

8

我正在使用Eonasdan的datetimepicker,目前它运行良好。

我有一个HTML元素,就像这样

<div id="datetimepicker"></div>

并像这样使用datetimepicker函数:

$("#datetimepicker").datetimepicker({
    inline: true,
    sideBySide: true,
    stepping: 5,
    locale: "de"
});

结果如下所示: 在此输入图片描述 我想使用date函数通过Javascript更新日期。我的尝试看起来像这样:
$("#datetimepicker").data("DateTimePicker").date("2016-01-01");

不幸的是,这只返回一个大对象,并没有以任何方式改变可见日期。该对象被返回。

Object { destroy: c/l.destroy(), toggle: c/ha(), show: c/ga(), hide: c/ba(),
    disable: c/l.disable(), enable: c/l.enable(), ignoreReadonly: c/l.ignoreReadonly(),
    options: c/l.options(), date: c/l.date(), format: c/l.format(), 40 weitere… }

使用不同的时间格式或仅使用日期而不使用时间等并不会有所帮助。
我在各个网站上找到的建议解决方案都没有解决我的问题。我不知道是否需要更新元素?如果是这样,我该如何做呢?我在文档中找不到任何提示...
不能使用defaultDate选项,因为我需要两次使用不同的日期进行此过程。

你能否修改这个Plnkr https://plnkr.co/edit/Cx70Y2moVVwPingvvN30?p=preview 来重现问题。首先在没有设置的情况下让它正常工作...或者你可以创建一个新的Plnkr并更新问题。 - bhantol
5个回答

7
根据文档,您可以使用字符串、日期、moment、null,下面是字符串和日期的示例。请注意默认选择器格式。
$('#datetimepicker1').data("DateTimePicker").date(new Date())

或者

$('#datetimepicker1').data("DateTimePicker").date('1/11/2016 12:23:12')

两者都不起作用。第一个仅将时间设置为零,第二个产生与我的版本完全相同的结果。 - JRsz
你已经将 $('#datetimepicker1') 替换为 $('#datetimepicker') 了吗? - Alexanderp
我已经替换了它并使用控制台进行测试。从未工作过。 - JRsz
以下代码完美运行: $('#datetimepicker12').data("DateTimePicker").date('1/11/2016 12:23:12'); $('#datetimepicker12').data("DateTimePicker").date('2/11/2016 12:23:12'); - Alexanderp
这段代码的作用是 $('#datetimepicker1').data("datetimepicker").date('1/11/2016 12:23:12'),它区分大小写,是我选择的日期时间选择器 https://getdatepicker.com/5-4/Usage/。 - SKLTFZ
显示剩余3条评论

3

我进行了一些调试,找到了这个解决方案,并且它对我有效。

$('#datetimepicker').data("DateTimePicker").setValue('2020-05-3')

通过调用$('#datetimepicker').data("DateTimePicker"),您将获得datepicker的所有功能。

2
当然,我是一名真正的死灵法师,但我遇到了同样的问题,.date()函数对我没有用。但是,我找到了这个:
$('#datetimepicker1').data("DateTimePicker").options({ defaultDate: newdate});
// newdate - could be Date, Moment or ISO string

1
我认为你的HTML元素应该是一个输入标签:


<input id="datetimepicker" type="text">

当文档准备好时:
$(document).ready(function () {
     $('#datetimepicker').datetimepicker({
            defaultDate: null,
            format: 'LT'
        });

})

你可以通过JavaScript设置日期值。 $('#datetimepicker').data("DateTimePicker").date(new Date()) 或者设置为空值,这将显示为空值。

$('#datetimepicker').data("DateTimePicker").date(null)

我测试过了,它正常工作。


0

如果你尝试使用$('#datetimepicker').data("DateTimePicker").date(null)而且出现了.data未定义的错误,那么你可以采用下面的技巧,我不知道它有多好,但它对我起作用了。

function getDateTimeObj(ele) {
    if(ele && ele[0]){
        for(k in ele[0]){
            if(ele[0][k].hasOwnProperty('DateTimePicker')){
                return ele[0][k]['DateTimePicker'];
            }
        }
    }
}

使用方法:

getDateTimeObj($('#datetimepicker')).date(null);

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