datetimepicker插件在选择特定时间后选择一小时

时间:2017-07-03 08:36:54

标签: javascript jquery

我正在使用datetimepicker插件。我收到一个奇怪的错误。每当我从下拉列表中选择一个时间时,插件会在所选时间前一小时选择。无法弄清楚为什么会发生这种情况



<!DOCTYPE html>
<html>
<head>
	 <title> Date Time Picker </title>
	 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.4/build/jquery.datetimepicker.min.css" />
</head>
<body>

    <input type="text" value="2:00 PM" id="timepicker" />

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.4/build/jquery.datetimepicker.full.min.js" ></script>
    <script>
        $('#timepicker').datetimepicker({
            datepicker: false,
            step:30,
            format:'g:i A'
        });
    </script>
</body>
</html>
&#13;
&#13;
&#13;

我得到这篇文章的答案是将格式选项中的 g 更改为Capital G 。但是当我这样改变意味着12小时格式已经改为24小时格式。我想让它保留12小时格式并解决这个问题

4 个答案:

答案 0 :(得分:0)

通常在处理日期和时间时,+ 1小时/天等的差异必须与时区差异有关。  1.如果插件具有时区配置参数,则为Se。  2.通过增加1小时来计算时区偏差。

请参阅:How to avoid time zone issues with JQuery datepicker

答案 1 :(得分:0)

这是因为您使用了无效的format。只需使用format:'H:i A'代替format:'g:i A'

&#13;
&#13;
$('#timepicker').datetimepicker({
  datepicker: false,
  step: 30,
  format:'H:i A'
});
&#13;
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.4/build/jquery.datetimepicker.min.css" />

<input type="text" value="2:00 AM" id="timepicker" />

<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.4/build/jquery.datetimepicker.full.min.js"></script>
&#13;
&#13;
&#13;

答案 2 :(得分:0)

使用G Capital:

    $('#timepicker').datetimepicker({
        datepicker: false, 
        step: 30,
        format:'G:i A'
    });

JSFiddle test

答案 3 :(得分:0)

只需更改格式g:i A到H:i A:

&#13;
&#13;
<!DOCTYPE html>
<html>
<head>
	 <title> Date Time Picker </title>
	 <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.4/build/jquery.datetimepicker.min.css" />
</head>
<body>

    <input type="text" value="2:00 AM" id="timepicker" />

    <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.4/jquery.min.js"></script>
	<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-datetimepicker/2.5.4/build/jquery.datetimepicker.full.min.js" ></script>
    <script>
        $('#timepicker').datetimepicker({
            datepicker: false,
            step:30,
            format:'H:i A'
        });
       $('#timepicker').change(function(){
           $(this).val($(this).val().replace(/^0+/, ''));
       });
    </script>
</body>
</html>
&#13;
&#13;
&#13;