如何以编程方式在Anytime datetimepicker小部件中设置时间值?

时间:2013-08-19 18:32:47

标签: jquery jquery-ui datetime jquery-plugins anytime

我认为Anytime datetimepicker小部件是猫的喵喵(或劳斯莱斯的咆哮(Why are the key elements of the anytime jQuery plugin blending in with the background/invisiblized?)),

我这样实现:

HTML

<label for="BeginDateTime" class="staticLabel">Begin Date Range</label>
<input id="BeginDateTime" name="BeginDateTime" required="true" />

的jQuery

AnyTime.picker("BeginDateTime");

var d8 = new Date();
d8.setHours(0);
d8.setMinutes(0);
d8.setSeconds(0);
$('#BeginDateTime').val(d8);

...但是,虽然首先将时间设置为zilch / midnight(有点):

enter image description here

(实际上,我只想要日期和时间,而不是GMT爵士乐等)

...当我将输入元素混合以调用/下拉AnyTime小部件时,它会忘记它被设置为zilch,然后用当前时间覆盖[rid,writ]:

enter image description here

如何让AnyTime小部件保留我在下拉时分配给它的值(当然,当用户明确地改变它时)?

更新

我也试过这个:

$( "#BeginDateTime" ).click(function() {
    var d = new Date();
    d.setHours(0);
    d.setMinutes(0);
    d.setSeconds(0);
    $('#BeginDateTime').val(d);
});

...但唯一的区别是输入元素中没有val出现,直到我点击它 - 它仍然显示zilch,但下降了当前时间......

更新2

我也尝试了这个:

AnyTime.picker("BeginDateTime",
{ labelHour: "00",
  labelMinute: "00",
  labelSecond: "00"
});

......但似乎什么也没做。

更新3

AMA的回答就像一个魅力。这段代码:

AnyTime.picker("BeginDateTime");
// Set the initial time to midnight
var convFrom = new AnyTime.Converter();
var d8From = new Date();
d8From.setHours(0);
d8From.setMinutes(0);
d8From.setSeconds(0);
$('#BeginDateTime').val(convFrom.format(d8From));

AnyTime.picker("EndDateTime");
// Set the initial time to the second before midnight
var convTo = new AnyTime.Converter();
var d8To = new Date();
d8To.setHours(23);
d8To.setMinutes(59);
d8To.setSeconds(59);
$('#EndDateTime').val(convTo.format(d8To));

...导致了这个:

enter image description here

1 个答案:

答案 0 :(得分:1)

选择器会自动解析输入字段中的初始值,但必须采用正确的格式。设置值的最简单方法是使用AnyTime.Converter,例如:

var conv = new AnyTime.Converter();
var d8 = new Date();
d8.setHours(0);
d8.setMinutes(0);
d8.setSeconds(0);
$('#BeginDateTime').val( conv.format(d8) );