Bootstrap日期时间选择器初始值

时间:2015-12-17 11:25:00

标签: javascript twitter-bootstrap datepicker

我使用https://github.com/Eonasdan/bootstrap-datetimepicker小部件来显示日历。但我不明白如何通过js从服务器设置初始值。

我从服务器收到格式的值:

Fri, 01 Jan 2016 00:00:00 GMT

但是我设置默认日期的所有尝试都失败了:

$el.datetimepicker({
    format: 'YYYY-MM-DD HH:mm:ss',
    defaultDate: moment(this.value, "YYYY-MM-DD HH:mm:ss")
})

$el.datetimepicker({
    format: 'YYYY-MM-DD HH:mm:ss',
    defaultDate: new Date(this.value)
})
  

弃用警告:时刻构建回落到日期。这个   气馁,将在即将发布的主要版本中删除。请   有关详细信息,请参阅https://github.com/moment/moment/issues/1407

$el.datetimepicker({
    format: 'YYYY-MM-DD HH:mm:ss',
    defaultDate: moment(new Date(this.value), "YYYY-MM-DD HH:mm:ss")
})
  

TypeError:defaultDate()无法解析日期参数:1029452400000

2 个答案:

答案 0 :(得分:2)

由于第三个区块存在TypeError,您可以尝试将this.value覆盖到" yyyy-mm-dd hh:mm:ss"格式自己。

这个问题可以帮助你解决这个问题:

Format JavaScript Date to yyyy-mm-dd

祝福。

答案 1 :(得分:1)

不确定您正在使用哪种服务器端语言,假设它是PHP

首先,服务器端日期格式与datetimepicker格式不同,您需要将服务器端日期格式更改为bootstrap datetimepicker格式format: 'YYYY-MM-DD HH:mm:ss';

如果PHP和日期为Fri, 01 Jan 2016 00:00:00 GMT格式,

改变它

<?php
$sdate = "Fri, 01 Jan 2016 00:00:00 GMT";
$newdate = gmdate("Y-m-d H:m:s", strtotime($sdate));
echo $newdate;
//output will be 2016-01-01 00:01:00
?>

现在在JS中,创建一个变量并加载newdate并设置defaultDate

var serdate = '2016-01-01 00:01:00';
$('#datetimepicker1').datetimepicker({
  format: 'YYYY-MM-DD HH:mm:ss',
  defaultDate: serdate,
  allowInputToggle: true
});

Fiddle Example