我有一个简单的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/ 但他们似乎都没有时区支持。
答案 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);