代码之家  ›  专栏  ›  技术社区  ›  yasarui

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

  •  4
  • yasarui  · 技术社区  · 8 年前

    我正在使用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>

    我在这篇文章中得到的答案是改变 g G

    4 回复  |  直到 8 年前
        1
  •  3
  •   Govind Samrow    8 年前

    只需将格式g:i A更改为H:i A:

    <!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>
        2
  •  3
  •   Rohan Kumar    8 年前

    这是因为你使用的是无效的 format format:'H:i A' 而不是 format:'g:i A'

    $('#timepicker').datetimepicker({
      datepicker: false,
      step: 30,
      format:'H:i A'
    });
    <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>
        3
  •  2
  •   Hope Mystery    8 年前

    使用G大写:

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

    JSFiddle test

        4
  •  1
  •   Out of Orbit    8 年前

    通常在处理日期和时间时,每天+-1小时等的差异必须与时区差异有关。 2.通过增加1小时来抵消时区。

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