Bootstrap Datetimepicker以编程方式从Epoch设置时间

时间:2014-07-15 15:01:43

标签: javascript jquery twitter-bootstrap datetime

我有一个简单的Datetimepicker:

$('#deadline_picker').datetimepicker();

我可以通过var x= new Date(timestamp)var x= (new Date(timestamp)).toUTCString()生成utc /或本地日期字符串。并将其指定为字段值$('#deadline_picker').val(x)

但是对于其中一个,Datetime Picker对象似乎没有响应程序化更改(如果日历选择了某个日期,它仍将显示选择的相同日期,并且它似乎不是时区意识)。能够以编程方式设置Epoch时间的精确等价对我来说非常关键。据说datetimepicker有API方法,但是文档没有一个例子。

编辑:我正在使用当前正在维护的副本: https://github.com/Eonasdan/bootstrap-datetimepicker

Edit2:显然它有不同的方法:http://www.malot.fr/bootstrap-datetimepicker/ 但他们似乎都没有时区支持。

2 个答案:

答案 0 :(得分:3)

我发现https://github.com/smalot/bootstrap-datetimepicker中常用的一个不会将(new Date).toUTCString()作为参数,并没有帮助。 我在我的问题中提到的那个:https://github.com/Eonasdan/bootstrap-datetimepicker - 也似乎不采用任何类型的(新的Date())字符串,但它将同时采用moment()和moment.utc()对象,所以在我的这种情况有效。 (截止日期在表格行中,在视觉上表示为没有秒,年或毫秒的Timestring,以保留数据表空间)。

$td = $(this).closest('tr').children('td');
var timestamp = moment.utc($td.eq(2).attr('value')*1000);
$('#deadline_picker').data("DateTimePicker").setDate(deadline); 

这可以通过以下方式逆转:

$('#deadline_picker').data("DateTimePicker").getDate().unix()

答案 1 :(得分:0)

你能试试吗?

    var x= (new Date(timestamp)).toUTCString();
    $('#deadline_picker').datetimepicker("update", x);

如果这不起作用,请尝试:

    $('#deadline_picker').data({date: x});
    $('#deadline_picker').datetimepicker('update');
    $('#deadline_picker').datetimepicker().children('input').val(x);

SOURCE