EasyUI jQuery timespinner widget

  • Post category:jquery

EasyUI jQuery的timespinner widget是一个时间选择器插件,可以用于在页面上选择时间。下面是使用timespinner widget的完整攻略。

安装

首先,你需要在你的HTML文件中引入 EasyUI jQuery 和 timespinner widget的代码。可以从EasyUI jQuery官网 http://www.jeasyui.com 上下载 EasyUI jQuery,并将其引入到你的HTML页面中。并从官网下载并引入 timespinner widget 的代码。

<head>
  <link rel="stylesheet" type="text/css" href="easyui/themes/default/easyui.css">
  <link rel="stylesheet" type="text/css" href="easyui/themes/icon.css">
  <link rel="stylesheet" type="text/css" href="easyui/demo/demo.css">
  <script type="text/javascript" src="easyui/jquery.min.js"></script>
  <script type="text/javascript" src="easyui/jquery.easyui.min.js"></script>
  <script type="text/javascript" src="easyui/jquery.timespinner.js"></script>
</head>

使用

定义一个HTML元素来作为你的时间选择器。

<input id="timespinner" type="text" class="easyui-timespinner">

接下来,初始化timespinner widget。可以使用JavaScript来进行初始化:

<script>
  $('#timespinner').timespinner({
    showSeconds: true, // 是否显示秒钟选择器
    showHours: true, // 是否显示小时选择器
    spinnerWidth: 100, // 控制选择器的宽度
    min: '00:00', // 最小可选时间
    max: '23:59:59' // 最大可选时间
  });
</script>

在初始化完成后,你就可以在页面上使用这个时间选择器了。

示例

示例 1

这是一个简单的示例用来演示如何使用timespinner来选择上午/下午时间。你可以通过AMPM两个按钮来切换到上午或下午时间的选择。

<input id="timespinner1" type="text" class="easyui-timespinner" style="width: 200px;">
<div>
  <input type="radio" name="meridian" value="AM" checked>AM
  <input type="radio" name="meridian" value="PM">PM
</div>
<script>
  $('#timespinner1').timespinner({
    showSeconds: true,
    showHours: true,
    formatter: function (time) {
      var meridian = $("input[name='meridian']:checked").val();
      var timeArray = time.split(":");
      var hour = timeArray[0];
      var minute = timeArray[1];
      var second = timeArray[2];
      if (meridian == "PM") {
        hour = parseInt(hour) + 12;
      }
      return hour + ":" + minute + ":" + second;
    },
    parser: function (time) {
      var meridian = $("input[name='meridian']:checked").val();
      var timeArray = time.split(":");
      var hour = timeArray[0];
      var minute = timeArray[1];
      var second = timeArray[2];
      if (meridian == "PM" && parseInt(hour) < 12) {
        hour = parseInt(hour) + 12;
      }
      return hour + ":" + minute + ":" + second;
    }
  });
</script>

示例 2

这是一个稍微复杂一些的示例,可以演示如何通过timespinner支持多个时区的选择。这个示例中使用了一个下拉框来选择时区。timespinner会根据选择的时区来进行时间的转换。

<select id="timezone" class="easyui-combobox" style="width:150px">
  <option value="0">GMT</option>
  <option value="8">China</option>
  <option value="-8">Pacific</option>
</select>
<input id="timespinner2" type="text" class="easyui-timespinner" style="width: 200px;">
<script>
  $('#timespinner2').timespinner({
    showSeconds: true,
    showHours: true,
    formatter: function (time) {
      var timezone = $('#timezone').combobox('getValue');
      var hour = parseInt(time.split(":")[0]);
      var minute = time.split(":")[1];
      var second = time.split(":")[2];
      return new Date(Date.UTC(1970, 0, 1, hour, minute, second)).toLocaleString("en-US", {timeZone: "Etc/GMT" + timezone});
    },
    parser: function (time) {
      var timezone = $('#timezone').combobox('getValue');
      var d = new Date(Date.parse(time));
      return d.getUTCHours() + ":" + d.getMinutes() + ":" + d.getSeconds();
    }
  });
</script>

在以上示例中,我们使用了formatter和parser方法,formatter方法可以将时间格式化为你所需要的格式,并且将时区的差异通过Date.toLocaleString方法进行转换。parser方法可以将时间解析为标准的UTC时间,以便在formatter方法中进行转换。

以上是EasyUI jQuery timespinner widget的完整攻略,希望对你有所帮助。