我正在使用 eonasdan bootstrap-datetimepicker 。我正在尝试以UTC时间(包括小时)工作,但 maxDate似乎是指当地时间。
示例将是将时间限制为UTC时间上午10:00。我希望datetimepicker允许时间修改但不超过UTC时间上午10:00。因为我是+3时区,所以我可以一直到下午13:00。
这是小提琴:http://jsfiddle.net/vvtwq0xm/1/
var dateUTCtime = new Date().toISOString();
alert('UTC time = ' + dateUTCtime);
var opts = {
format: "DD-MMM-YYYY HH:mm",
stepping: 5,
maxDate: dateUTCtime,
useCurrent: true,
sideBySide: false,
showTodayButton: true,
widgetPositioning: {
'vertical': 'bottom'
}
};
$('#datetimepicker1').datetimepicker();
我的日期是UTC,但maxTime似乎不尊重UTC的时间(小时)。它允许我直到当前的当地时间。
无论如何让它在UTC上运行?
ps:我添加了一些解释以便更好地理解。我对尊重UTC日期和时间(小时)感兴趣。
答案 0 :(得分:0)
在版本4.17.37
中添加了时区集成(请参阅changelog),而您在小提琴中使用了datetimepicker的版本4.14.30
。
要将选择器与UTC一起使用,请在导入中添加moment-timezone,并使用moment.utc()
设置maxDate
。
这是一个工作示例(使用最新的选择器版本:4.17.42
):
var opts = {
format: "DD-MMM-YYYY HH:mm",
stepping: 5,
maxDate: moment.utc(),
useCurrent: true,
sideBySide: false,
showTodayButton: true,
widgetPositioning: {
'vertical': 'bottom'
}
};
$('#datetimepicker1').datetimepicker(opts);
<link href="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/css/bootstrap.css" rel="stylesheet"/>
<link href="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.42/css/bootstrap-datetimepicker.css" rel="stylesheet"/>
<script src="//cdnjs.cloudflare.com/ajax/libs/jquery/2.1.3/jquery.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.5/moment-timezone-with-data-2010-2020.min.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.6/js/bootstrap.js"></script>
<script src="//cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.42/js/bootstrap-datetimepicker.min.js"></script>
<div class='input-group date' id='datetimepicker1'>
<input type='text' class="form-control" />
<span class="input-group-addon">
<span class="glyphicon glyphicon-calendar"></span>
</span>
</div>