在bootstrap-datetimepicker中设置默认时间

31

我想在这个日期时间选择器中为当前日期设置默认时间为00:01。有人尝试过吗?我遇到了一些麻烦。看起来很简单。

$('#startdatetime-from').datetimepicker({
    language: 'en',
    format: 'yyyy-MM-dd hh:mm'
});

我需要使用setDate,但我不确定如何使用。我查看了他们的代码,但没有找到相应的参数。


为什么不向我们展示您遇到的问题。发一些代码吧。 - Davin Tryon
请查看我的更新答案,了解setDate/setLocalDate的相关信息。 - Sara
13个回答

41

上述方法对我都不起作用,但是我在实例化时成功地设置了默认值。

JQuery

<script type="text/javascript">
    $(function () {
        var dateNow = new Date();
        $('#datetimepicker').datetimepicker({
            defaultDate:dateNow
        });
    });
</script>

1
文档 - johanvs

24

根据这个 GitHub 问题,将默认输入值设置为:

HTML

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

jQuery

var d = new Date();

var month = d.getMonth()+1;
var day = d.getDate();

var output = d.getFullYear() + '/' +
(month<10 ? '0' : '') + month + '/' +
(day<10 ? '0' : '') + day;

$("#datetimepicker-input").val(output + " 00:01:00");

jsFiddle
JavaScript日期源代码

编辑 - setLocalDate/setDate

var d = new Date();
var month = d.getMonth();
var day = d.getDate();
var year = d.getFullYear();

$('#startdatetime-from').datetimepicker({
    language: 'en',
    format: 'yyyy-MM-dd hh:mm'
});
$("#startdatetime-from").data('DateTimePicker').setLocalDate(new Date(year, month, day, 00, 01));

jsFiddle


对我来说,.setDate() 起作用了,而不是 setLocalDate()。无论如何还是谢谢! - M. Ahmad Zafar
1
代码中有一些错别字。正确的代码实际上是:jQuery('#startDate').data('DateTimePicker').setDate(new Date(2015, 1, 1, 00, 01)); - Jean-Paul
你的 Github 链接似乎现在已经失效了。 - Bach
如果我想在日期时间选择器中添加可编辑的时区,该怎么办? - er.irfankhan11
@M.AhmadZafar 你如何使用.setDate(),因为当我尝试使用时,出现了一个错误,类似于无法读取未定义的 'setLocalDate' 属性。 - ashish bansal

12

如果要使用输入值的日期时间,请将选项 useCurrent 设置为 false,并在 value 中设置日期

$('#datetimepicker1').datetimepicker({
  useCurrent: false,
  format: 'DD.MM.YYYY H:mm'
});


2
谢谢。我将 useCurrent 设置为 false,然后 defaultDate 生效了。 - shrekuu
请注意,datetimepicker接受的格式字符串与C# datetime格式字符串不同。例如,在.Net MVC中设置输入值,请使用<input type="text" id="datetimepicker1" value="@Model.Date.ToString("dd.MM.yyyy H:MM")"/>(请注意“dd”和“yyyy”的大小写不同)。 - Georg Patscheider
使用 useCurrent 保存了我... 我无法弄清如何停止它 - 谢谢! - Trevor Daniel
完美,我刚刚将值格式设置为与日期选择器相同,效果非常好。 - Rohit Mittal

9
我尝试为一个选择器设置默认时间,并且成功了:
$('#date2').datetimepicker({
 format: 'DD-MM-YYYY 12:00:00'
});

这将保存在数据库中,格式为:2015-03-01 12:00:00

用于 SQL Server 中的 smalldatetime 数据类型


4
这也会禁用小时和分钟的选择。您将没有更改小时或分钟的选项。 - Firze

8

对我来说它有效:

 <script type="text/javascript">
        $(function () {
            var dateNow = new Date();
            $('#calendario').datetimepicker({
                locale: 'es',
                format: 'DD/MM/YYYY',
                defaultDate:moment(dateNow).hours(0).minutes(0).seconds(0).milliseconds(0)                    
            });
        });            
    </script>

这应该是完美的答案。 - Mehdi Souregi

7

在初始化之后使用这个函数

$('.form_datetime').datetimepicker('update', new Date());

5

各位开发者,你们好:

请尝试这段代码:

var default_date=  new Date(); // or your date
$('#datetimepicker').datetimepicker({
    format: 'DD/MM/YYYY HH:mm', // format you want to show on datetimepicker
    useCurrent:false, // default this is set to true
    defaultDate: default_date
});

如果您想设置默认日期,请将useCurrent设置为false,否则setDate或defaultDate方法将不起作用。


4
这对我很有帮助。我必须使用特定的日期格式,例如'YY-MM-dd hh:mm'或'YYYY-MM-dd hh:mm'。
$('#datetimepicker1').datetimepicker({
            format: 'YYYY-MM-dd hh:mm',
            defaultDate: new Date()
        });

2
这是我为您的问题提供的解决方案:
$('#startdatetime-from').datetimepicker({
language: 'en',
format: 'yyyy-MM-dd hh:mm'
}).on('dp.change', function (e) {
        var specifiedDate = new Date(e.date);
        if (specifiedDate.getMinutes() == 0)
        {
            specifiedDate.setMinutes(1);
            $(this).data('DateTimePicker').date(specifiedDate);
        }
    });

这也适用于设置默认的小时或两者都设置。

请注意,此代码示例也适用于 useCurrent: false 参数。

当用户选择日期时,我们检查分钟是否为0(硬编码默认值)。在这种情况下,我们将其设置为1。然后,用户无法选择0。


2
我是这样解决我的问题的。
$('#startdatetime-from').datetimepicker({
language: 'en',
format: 'yyyy-MM-dd hh:mm',
defaultDate:new Date()
});

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