https://jqueryui.com/datepicker/

w

timepicker

datepicker

日期 时间 选择器

    <script src="static/jquery-3.1.0.min.js"></script>
<link rel="stylesheet" href="static/jquery-ui.css">
<script src="static/jquery-timepicker-master/jquery.timepicker.min.js"></script>
<script src="static/jquery-ui.min.js"></script>
<script>
$(function () {
$("#jqueryui-datepicker_wmiss").datepicker({
dateFormat: "yy-mm-dd",
changeMonth: true
});
$("#ui-datepicker-div").css('opacity', '1')
$("#ui-datepicker-div").css('z-index', 99999);
});
</script> 开始同步日期:<input class="form-control" type="text" name="wmiss" id="jqueryui-datepicker_wmiss" >
<meta charset="UTF-8">
<?php
setcookie('userid', 'all');
include('conn.php');
include('w_fun.php');
include('config_lang.php');
include('w_fun_this_project.php');
$sql = 'SET GLOBAL connect_timeout=31536000';
mysqli_query($link, $sql);
$wclock0 = 8;
$wclock1 = 21; $wtoday = date('Y-m-d');
$wts = strtotime($wtoday);
$wts += $wclock0 * 3600;
//$wts += $wclock1 * 3600 - 10 * 24 * 3600; //var_dump($_REQUEST);
$wsearch = false;
if (isset($_REQUEST['wmiss']) && $_REQUEST['wmiss'] != '') {
$wsearch = true;
$wd = $_REQUEST['wmiss'] . '0000';
$wd = strtotime($wd);
$wts = $wd - 8 * 3600 + $wclock0 * 3600;
$wtsb = $wts + +$wclock1 * 3600;
} $wdate_easyb = array();
$sql = 'SELECT id FROM room ';
$wrooms = db_multiple_rows_link($link, $sql); //遍历会议室
foreach ($wrooms AS $wr) {
$ww = ' WHERE ro.wstart>=' . $wts;
if ($wsearch) $ww = ' WHERE ro.wstart>=' . $wts . ' AND ro.wend<=' . $wtsb . ' ';
$ww .= ' AND ro.rid = ' . $wr['id']; $wf = 'ro.*,r.name,r.wdes,r.num,FROM_UNIXTIME(ro.wstart,"%Y%m%d") AS wdate,FROM_UNIXTIME(ro.wstart,"%H%i") AS wshi, FROM_UNIXTIME(ro.wend,"%H%i") AS wehi';
$sql = 'SELECT ' . $wf . ' FROM room_order ro LEFT JOIN room r ON ro.rid=r.id ' . $ww . ' ORDER BY ro.wstart ASC '; //var_dump($sql);
$wrows = array();
$wrows = db_multiple_rows_link($link, $sql); $w = 0;
$wb = 0;
$wtmpdate = '';
$wdate_arr = array();
//定会议室,按日期建立2维数组
foreach ($wrows AS $one) {
if ($wb == 0) {
$wdate_arr[$w][] = $one;
$wb = 1;
} else {
if ($wtmpdate == $one['wdate']) {
$wdate_arr[$w][] = $one;
} else {
$w++;
$wdate_arr[$w][] = $one;
}
}
$wtmpdate = $one['wdate'];
} $wdate_easy = array();
$w = 0;
//定会议室、日期,计算各个时间子区间的会议起止时间和会议发起者
foreach ($wdate_arr AS $one) { $wdate_easy[$w]['wdate'] = $one['0']['wdate'];
$wdate_easy[$w]['name'] = $one['0']['name'];
$wdate_easy[$w]['wdes'] = $one['0']['wdes'];
$wdate_easy[$w]['num'] = $one['0']['num'];
$wdate_easy[$w]['rid'] = $one['0']['rid'];
//建立填充结构,初始为空,即会议室未被预订
for ($wi = $wclock0; $wi < $wclock1; $wi++) {
$wii = 100 * $wi;
$wdate_easy[$w][$wii . 's'] = '';
$wdate_easy[$w][$wii . 'e'] = '';
//每个时间区间、粒度下,@w假定w@只有一个时间起点、终点、起点和终点、终点和起点:有且只有4种情况
//关注起点
$wdate_easy[$w][$wii . 's' . 'sysuser'] = '';
$wdate_easy[$w][$wii . 's' . 'id'] = ''; $wii = 100 * $wi + 30;
$wdate_easy[$w][$wii . 's'] = '';
$wdate_easy[$w][$wii . 'e'] = '';
$wdate_easy[$w][$wii . 's' . 'sysuser'] = '';
$wdate_easy[$w][$wii . 's' . 'id'] = ''; }
$w++;
} $w = 0;
//遍历日期
foreach ($wdate_arr AS $one) {
//遍历时间区间
foreach ($one AS $oneb) {
$wshi = $oneb['wshi'];
$wehi = $oneb['wehi'];
$wcon = $wshi . '-' . $wehi . $oneb['sysuser'] . '-' . $oneb['wtheme']; for ($wi = $wclock0; $wi < $wclock1; $wi++) {
//在数据库选出时,已按会议开始时间降序排列
$wii = 100 * $wi;
if ($wshi >= $wii && $wshi < ($wii + 30)) {
$wdate_easy[$w][$wii . 's'] = $wcon;
$wdate_easy[$w][$wii . 's' . 'sysuser'] = $oneb['sysuser'];
$wdate_easy[$w][$wii . 's' . 'id'] = $oneb['id'];
}
if ($wehi >= $wii && $wehi < ($wii + 30)) {
$wdate_easy[$w][$wii . 'e'] = $wcon;
}
$wii = 100 * $wi + 30;
if ($wshi >= $wii && $wshi < ($wii + 30)) {
$wdate_easy[$w][$wii . 's'] = $wcon;
$wdate_easy[$w][$wii . 's' . 'sysuser'] = $oneb['sysuser'];
$wdate_easy[$w][$wii . 's' . 'id'] = $oneb['id'];
}
if ($wehi >= $wii && $wehi < ($wii + 30)) {
$wdate_easy[$w][$wii . 'e'] = $wcon;
}
}
}
$w++;
} $wdate_easyb[] = $wdate_easy;
} ////var_dump($wdate_easyb); if (isset($_REQUEST['wsu'])) {
////var_dump($_REQUEST);
$wstart = wampm_millseconds($_REQUEST['wts']);
$wend = wampm_millseconds($_REQUEST['wte']); if ($wend <= $wstart) {
js_pure_alert('起止时间错误!');
} else {
$wd = $_REQUEST['wd'] . '0000'; $wd = strtotime($wd); $wstart += $wd - 8 * 3600;
$wend += $wd - 8 * 3600; $wtheme = $_REQUEST['wtheme'];
$rid = $_REQUEST['wrid']; $sql = 'SELECT id FROM room_order WHERE rid=' . $rid . ' AND wstart>=' . $wstart . ' AND wstart<' . $wend . ' AND wend>' . $wend;
$wcheck0 = db_check_exist_link($link, $sql); $sql = 'SELECT id FROM room_order WHERE rid=' . $rid . ' AND wstart<=' . $wstart . ' AND wend>=' . $wend;
$wcheck1 = db_check_exist_link($link, $sql); $sql = 'SELECT id FROM room_order WHERE rid=' . $rid . ' AND wstart<=' . $wstart . ' AND wend>' . $wstart . ' AND wend<=' . $wend;
$wcheck2 = db_check_exist_link($link, $sql); $sql = 'SELECT id FROM room_order WHERE rid=' . $rid . ' AND ( wstart=' . $wstart . ' OR wstart=' . $wend . ' OR wend=' . $wstart . ' OR wend=' . $wend . ' )';
$wcheck3 = db_check_exist_link($link, $sql); if ($wcheck0 || $wcheck1 || $wcheck2 || $wcheck3) {
js_pure_alert('房间预订时间冲突!');
} else {
$sql = 'INSERT INTO room_order (sysuser,wstart,wend,rid,wtheme) VALUE ("' . $_COOKIE['userid'] . '",' . $wstart . ',' . $wend . ',' . $rid . ',"' . $wtheme . '")';
////var_dump($sql);
mysqli_query($link, $sql); js_window_location(w_get_this_filename_url());
}
} } if (isset($_REQUEST['del'])) {
////var_dump($_REQUEST);
$sql = 'DELETE FROM room_order WHERE id=' . $_REQUEST['del'];
////var_dump($sql);
mysqli_query($link, $sql);
js_window_location(w_get_this_filename_url()); } ?>
<script>
console.log(document.cookie);
</script>
<!doctype html>
<html>
<head>
<meta charset="UTF-8">
<title>order room - 离散度30min </title>
<link rel="stylesheet" href="static/bootstrap/css/bootstrap.min.css">
<link rel="stylesheet" href="static/bootstrap/css/bootstrap-theme.min.css">
<link rel="stylesheet" href="static/base.css">
<script src="static/jquery-3.1.0.min.js"></script>
<script src="static/bootstrap/js/bootstrap.min.js"></script> <link rel="stylesheet" href="static/jquery-timepicker-master/jquery.timepicker.css">
<script src="static/jquery-timepicker-master/jquery.timepicker.min.js"></script> <link rel="stylesheet" href="static/jquery-ui.css">
<script src="static/jquery-ui.min.js"></script> <style>
td {
background-color: #fff;
}
</style>
</head>
<body>
<form method="POST" action="">
<input class="form-control" type="text" name="wmiss" id="jqueryui-datepicker_wmiss"
style="display: inline;width: 10%">
<button type="submit" class="btn" name="btn_wmiss" style="display: inline">检索日期</button>
</form>
<script>
$(function () {
$("#jqueryui-datepicker_wmiss").datepicker({
dateFormat: "yy-mm-dd"
});
});
</script> <?php
$wtr = '<table class="table table-striped table-bordered">
<tr><td>日期</td><td>会议室编号</td><td>会议室名称</td>';
for ($w = $wclock0; $w < $wclock1; $w++) {
$wtr .= '<td>' . $w . ':00</td>';
$wtr .= '<td>' . $w . ':30</td>';
}
//$wtr .= '<td>' . $wclock1 . ':00</td></tr>';
foreach ($wdate_easyb AS $wdate_easy) {
foreach ($wdate_easy AS $one) {
$wtr .= '<tr><td>' . $one['wdate'] . '</td><td> ' . $one['num'] . '</td><td>' . $one['name'] . '</td>';
$wcolor = 0;
$wstyle[0] = ' ';
$wstyle[1] = ' style="background-color: yellow" '; for ($wi = $wclock0; $wi < $wclock1; $wi++) {
$wii = 100 * $wi;
$wid = $one['wdate'] . $wii . $one['rid']; if ($one[$wii . 's'] != '' || $one[$wii . 'e'] != '') {
$wcolor = 1;
} if ($one[$wii . 's'] != '' || $one[$wii . 'e'] != '') {
//将 “删除按钮”置于会议开始位置
if ($one[$wii . 's' . 'sysuser'] == $_COOKIE['userid']) {
$wtr .= '<td ' . $wstyle[$wcolor] . ' id="' . $wid . '" >' . $one[$wii . 's'] . '<br><br><br>' . $one[$wii . 'e'] . '<form method="POST" action="" ><button type="submit" class="btn btn-danger" name="del" value="' . $one[$wii . 's' . 'id'] . '">删除</button></form>' . '</td> ';
} else {
$wtr .= '<td ' . $wstyle[$wcolor] . ' id="' . $wid . '" >' . $one[$wii . 's'] . '<br><br><br>' . $one[$wii . 'e'] . '</td> ';
}
} else {
$wtr .= '<td ' . $wstyle[$wcolor] . ' id="' . $wid . '" data-toggle="modal" data-target="#w' . $wid . '">' . $one[$wii . 's'] . '' . '<br><br><br>' . $one[$wii . 'e'] . '</td> '; ?>
<div class="modal fade " id="<?= 'w' . $wid ?>" tabindex="-1" role="dialog"
aria-labelledby="<?= 'wt' . $wid ?>"
aria-hidden="true">
<div class="modal-dialog">
<form method="post" action="">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
&times;
</button>
<h4 class="modal-title" id="<?= 'wt' . $wid ?>">
会议室预订
</h4>
</div>
<div class="modal-body">
<table class="table">
<tr>
<td>会议日期</td>
<td id="wd<?= $wid ?>"><input class="form-control jqueryui-datepicker"
type="text" name="wd"
id="jqueryui-datepicker<?= $wid ?>"
value="<?= $one['wdate'] ?>">
</td>
</tr>
<tr>
<td>会议室名称</td>
<td id="wr<?= $wid ?>"><input class="form-control" type="text"
id="wr<?= $wid ?>"
value="<?= $one['name'] ?>" disabled="true">
<input type="hidden" name="wrid" value="<?= $one['rid'] ?>">
</td>
</tr>
<tr>
<td>会议主题</td>
<td><input class="form-control" type="text" name="wtheme"
id="wt<?= $wid ?>">
</td>
</tr>
<tr>
<td class="">开始时间</td>
<td><input class="form-control" id="jq_timepicker<?= $wid ?>s" type="text"
name="wts"
value="<?= substr($wii, 0, strlen($wii) - 2) . ':' . substr($wii, strlen($wii) - 2, 2); ?>">
</td>
</tr>
<tr>
<td>结束时间</td> <td><input class="form-control" id="jq_timepicker<?= $wid ?>e" type="text"
name="wte">
</td>
</tr>
<tr>
<td>预定人</td>
<td><input class="form-control" type="text" name="wu" id="wu<?= $wid ?>"
value="<?= $_COOKIE['userid'] ?>" disabled="true">
</tr> </table>
<script>
$('#jq_timepicker<?=$wid ?>s').timepicker({
'minTime': '8:00am',
'maxTime': '9:00pm',
'showDuration': false,
'step': 1
}); $('#jq_timepicker<?=$wid ?>e').timepicker({
'minTime': '8:00am',
'maxTime': '9:00pm',
'showDuration': false,
'step': 1
}); $(function () {
$("#jqueryui-datepicker<?=$wid ?>").datepicker({
dateFormat: "yy-mm-dd"
});
});
</script>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">取消
</button>
<button type="submit" class="btn btn-primary" name="wsu" id="wo<?= $wid ?>">
提交预订
</button>
</div>
</div>
</form>
</div>
</div>
<?php
}
?>
<?php if (($one[$wii . 's'] == '' && $one[$wii . 'e'] != '') || ($one[$wii . 's'] != '' && $one[$wii . 'e'] != '')) {
$wcolor = 0;
} $wii = 100 * $wi + 30;
$wid = $one['wdate'] . $wii . $one['rid'];
if ($one[$wii . 's'] != '' || $one[$wii . 'e'] != '') {
$wcolor = 1;
}
if ($one[$wii . 's'] != '' || $one[$wii . 'e'] != '') {
if ($one[$wii . 's' . 'sysuser'] == $_COOKIE['userid']) {
$wtr .= '<td ' . $wstyle[$wcolor] . ' id="' . $wid . '" >' . $one[$wii . 's'] . '<br><br><br>' . $one[$wii . 'e'] . '<form method="POST" action="" ><button type="submit" class="btn btn-danger" name="del" value="' . $one[$wii . 's' . 'id'] . '">删除</button></form>' . '</td> ';
} else {
$wtr .= '<td ' . $wstyle[$wcolor] . ' id="' . $wid . '" >' . $one[$wii . 's'] . '<br><br><br>w2w2--' . $one[$wii . 'e'] . '</td> ';
}
} else {
$wtr .= '<td ' . $wstyle[$wcolor] . ' id="' . $wid . '" data-toggle="modal" data-target="#w' . $wid . '">' . $one[$wii . 's'] . '<br><br><br>' . $one[$wii . 'e'] . '</td> '; ?> <div class="modal fade" id="<?= 'w' . $wid ?>" tabindex="-1" role="dialog"
aria-labelledby="<?= 'wt' . $wid ?>"
aria-hidden="true">
<div class="modal-dialog">
<form method="post" action="">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close" data-dismiss="modal" aria-hidden="true">
&times;
</button>
<h4 class="modal-title" id="<?= 'wt' . $wid ?>">
会议室预订
</h4>
</div>
<div class="modal-body">
<table class="table">
<tr>
<td>会议日期</td>
<td id="wd<?= $wid ?>"><input class="form-control jqueryui-datepicker"
type="text" name="wd"
id="jqueryui-datepicker<?= $wid ?>"
value="<?= $one['wdate'] ?>">
</td>
</tr>
<tr>
<td>会议室名称</td>
<td id="wr<?= $wid ?>"><input class="form-control" type="text"
id="wr<?= $wid ?>"
value="<?= $one['name'] ?>" disabled="true"> <input type="hidden" name="wrid" value="<?= $one['rid'] ?>">
</td>
</tr>
<tr>
<td>会议主题</td>
<td><input class="form-control" type="text" name="wtheme"
id="wt<?= $wid ?>">
</td>
</tr>
<tr>
<td class="">开始时间</td>
<td><input class="form-control" id="jq_timepicker<?= $wid ?>s" type="text"
name="wts"
value="<?= substr($wii, 0, strlen($wii) - 2) . ':' . substr($wii, strlen($wii) - 2, 2); ?>">
</td>
</tr>
<tr>
<td>结束时间</td> <td><input class="form-control" id="jq_timepicker<?= $wid ?>e" type="text"
name="wte">
</td>
</tr>
<tr>
<td>预定人</td>
<td><input class="form-control" type="text" id="wu<?= $wid ?>"
value="<?= $_COOKIE['userid'] ?>" disabled="true">
</tr>
</table>
<script>
$('#jq_timepicker<?=$wid ?>s').timepicker({
'minTime': '8:00am',
'maxTime': '9:00pm',
'showDuration': false,
'step': 1
});
$('#jq_timepicker<?=$wid ?>e').timepicker({
'minTime': '8:00am',
'maxTime': '9:00pm',
'showDuration': false,
'step': 1
});
$(function () {
$("#jqueryui-datepicker<?=$wid ?>").datepicker({
dateFormat: "yy-mm-dd"
});
});
</script>
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default" data-dismiss="modal">取消
</button>
<button type="submit" class="btn btn-primary" name="wsu" id="wo<?= $wid ?>">
提交预订
</button>
</div>
</div>
</form>
</div>
</div>
<?php
}
?>
<?php
if (($one[$wii . 's'] == '' && $one[$wii . 'e'] != '') || ($one[$wii . 's'] != '' && $one[$wii . 'e'] != '')) {
$wcolor = 0;
}
}
$wtr .= '</tr>';
}
} $wtr .= '</table>';
echo $wtr;
?> </body>
</html> <script> var w = document.querySelectorAll("td");
console.log(w);
for (var wi = 0, wl = w.length; wi < wl; wi++) {
var wattr = w[wi].style.backgroundColor
console.log(wattr) if (wattr == 'yellow') {
console.log(w[wi].id)
w[wi].id = null
console.log(w[wi].id)
// w[wi].id=null
// w[wi].onclick=function(){alert(3)}
w[wi].disabled = true; // console.log(w[wi].attributes['data-target'])
// w[wi].attributes['data-target'].value=null
// console.log(w[wi].attributes['data-target']) } } </script>
 /*!
* jquery-timepicker v1.11.10 - A jQuery timepicker plugin inspired by Google Calendar. It supports both mouse and keyboard navigation.
* Copyright (c) 2017 Jon Thornton - http://jonthornton.github.com/jquery-timepicker/
* License: MIT
*/ !
function(a) {
"object" == typeof exports && exports && "object" == typeof module && module && module.exports === exports ? a(require("jquery")) : "function" == typeof define && define.amd ? define(["jquery"], a) : a(jQuery)
} (function(a) {
function b(a) {
var b = a[0];
return b.offsetWidth > 0 && b.offsetHeight > 0
}
function c(b) {
if (b.minTime && (b.minTime = t(b.minTime)), b.maxTime && (b.maxTime = t(b.maxTime)), b.durationTime && "function" != typeof b.durationTime && (b.durationTime = t(b.durationTime)), "now" == b.scrollDefault) b.scrollDefault = function() {
return b.roundingFunction(t(new Date), b)
};
else if (b.scrollDefault && "function" != typeof b.scrollDefault) {
var c = b.scrollDefault;
b.scrollDefault = function() {
return b.roundingFunction(t(c), b)
}
} else b.minTime && (b.scrollDefault = function() {
return b.roundingFunction(b.minTime, b)
});
if ("string" === a.type(b.timeFormat) && b.timeFormat.match(/[gh]/) && (b._twelveHourTime = !0), b.showOnFocus === !1 && -1 != b.showOn.indexOf("focus") && b.showOn.splice(b.showOn.indexOf("focus"), 1), b.disableTimeRanges.length > 0) {
for (var d in b.disableTimeRanges) b.disableTimeRanges[d] = [t(b.disableTimeRanges[d][0]), t(b.disableTimeRanges[d][1])];
b.disableTimeRanges = b.disableTimeRanges.sort(function(a, b) {
return a[0] - b[0]
});
for (var d = b.disableTimeRanges.length - 1; d > 0; d--) b.disableTimeRanges[d][0] <= b.disableTimeRanges[d - 1][1] && (b.disableTimeRanges[d - 1] = [Math.min(b.disableTimeRanges[d][0], b.disableTimeRanges[d - 1][0]), Math.max(b.disableTimeRanges[d][1], b.disableTimeRanges[d - 1][1])], b.disableTimeRanges.splice(d, 1))
}
return b
}
function d(b) {
var c = b.data("timepicker-settings"),
d = b.data("timepicker-list");
if (d && d.length && (d.remove(), b.data("timepicker-list", !1)), c.useSelect) {
d = a("<select />", {
"class": "ui-timepicker-select"
});
var g = d
} else {
d = a("<ul />", {
"class": "ui-timepicker-list"
});
var g = a("<div />", {
"class": "ui-timepicker-wrapper",
tabindex: -1
});
g.css({
display: "none",
position: "absolute"
}).append(d)
}
if (c.noneOption) if (c.noneOption === !0 && (c.noneOption = c.useSelect ? "Time...": "None"), a.isArray(c.noneOption)) {
for (var i in c.noneOption) if (parseInt(i, 10) == i) {
var k = e(c.noneOption[i], c.useSelect);
d.append(k)
}
} else {
var k = e(c.noneOption, c.useSelect);
d.append(k)
}
if (c.className && g.addClass(c.className), (null !== c.minTime || null !== c.durationTime) && c.showDuration) {
"function" == typeof c.step ? "function": c.step;
g.addClass("ui-timepicker-with-duration"),
g.addClass("ui-timepicker-step-" + c.step)
}
var l = c.minTime;
"function" == typeof c.durationTime ? l = t(c.durationTime()) : null !== c.durationTime && (l = c.durationTime);
var n = null !== c.minTime ? c.minTime: 0,
o = null !== c.maxTime ? c.maxTime: n + v - 1;
n > o && (o += v),
o === v - 1 && "string" === a.type(c.timeFormat) && c.show2400 && (o = v);
var p = c.disableTimeRanges,
w = 0,
x = p.length,
z = c.step;
"function" != typeof z && (z = function() {
return c.step
});
for (var i = n,
A = 0; o >= i; A++, i += 60 * z(A)) {
var B = i,
C = s(B, c);
if (c.useSelect) {
var D = a("<option />", {
value: C
});
D.text(C)
} else {
var D = a("<li />");
D.addClass(v / 2 > B % v ? "ui-timepicker-am": "ui-timepicker-pm"),
D.data("time", u(B, c)),
D.text(C)
}
if ((null !== c.minTime || null !== c.durationTime) && c.showDuration) {
var E = r(i - l, c.step);
if (c.useSelect) D.text(D.text() + " (" + E + ")");
else {
var F = a("<span />", {
"class": "ui-timepicker-duration"
});
F.text(" (" + E + ")"),
D.append(F)
}
}
x > w && (B >= p[w][1] && (w += 1), p[w] && B >= p[w][0] && B < p[w][1] && (c.useSelect ? D.prop("disabled", !0) : D.addClass("ui-timepicker-disabled"))),
d.append(D)
}
if (g.data("timepicker-input", b), b.data("timepicker-list", g), c.useSelect) b.val() && d.val(f(t(b.val()), c)),
d.on("focus",
function() {
a(this).data("timepicker-input").trigger("showTimepicker")
}),
d.on("blur",
function() {
a(this).data("timepicker-input").trigger("hideTimepicker")
}),
d.on("change",
function() {
m(b, a(this).val(), "select")
}),
m(b, d.val(), "initial"),
b.hide().after(d);
else {
var G = c.appendTo;
"string" == typeof G ? G = a(G) : "function" == typeof G && (G = G(b)),
G.append(g),
j(b, d),
d.on("mousedown click", "li",
function(c) {
b.off("focus.timepicker"),
b.on("focus.timepicker-ie-hack",
function() {
b.off("focus.timepicker-ie-hack"),
b.on("focus.timepicker", y.show)
}),
h(b) || b[0].focus(),
d.find("li").removeClass("ui-timepicker-selected"),
a(this).addClass("ui-timepicker-selected"),
q(b) && (b.trigger("hideTimepicker"), d.on("mouseup.timepicker click.timepicker", "li",
function(a) {
d.off("mouseup.timepicker click.timepicker"),
g.hide()
}))
})
}
}
function e(b, c) {
var d, e, f;
return "object" == typeof b ? (d = b.label, e = b.className, f = b.value) : "string" == typeof b ? d = b: a.error("Invalid noneOption value"),
c ? a("<option />", {
value: f,
"class": e,
text: d
}) : a("<li />", {
"class": e,
text: d
}).data("time", String(f))
}
function f(a, b) {
return a = b.roundingFunction(a, b),
null !== a ? s(a, b) : void 0
}
function g(b) {
if (b.target != window) {
var c = a(b.target);
c.closest(".ui-timepicker-input").length || c.closest(".ui-timepicker-wrapper").length || (y.hide(), a(document).unbind(".ui-timepicker"), a(window).unbind(".ui-timepicker"))
}
}
function h(a) {
var b = a.data("timepicker-settings");
return (window.navigator.msMaxTouchPoints || "ontouchstart" in document) && b.disableTouchKeyboard
}
function i(b, c, d) {
if (!d && 0 !== d) return ! 1;
var e = b.data("timepicker-settings"),
f = !1,
d = e.roundingFunction(d, e);
return c.find("li").each(function(b, c) {
var e = a(c);
if ("number" == typeof e.data("time")) return e.data("time") == d ? (f = e, !1) : void 0
}),
f
}
function j(a, b) {
b.find("li").removeClass("ui-timepicker-selected");
var c = t(l(a), a.data("timepicker-settings"));
if (null !== c) {
var d = i(a, b, c);
if (d) {
var e = d.offset().top - b.offset().top; (e + d.outerHeight() > b.outerHeight() || 0 > e) && b.scrollTop(b.scrollTop() + d.position().top - d.outerHeight()),
d.addClass("ui-timepicker-selected")
}
}
}
function k(b, c) {
if ("" !== this.value && "timepicker" != c) {
var d = a(this);
if (!d.is(":focus") || b && "change" == b.type) {
var e = d.data("timepicker-settings"),
f = t(this.value, e);
if (null === f) return void d.trigger("timeFormatError");
var g = !1;
if (null !== e.minTime && null !== e.maxTime && (f < e.minTime || f > e.maxTime) && (g = !0), a.each(e.disableTimeRanges,
function() {
return f >= this[0] && f < this[1] ? (g = !0, !1) : void 0
}), e.forceRoundTime) {
var h = e.roundingFunction(f, e);
h != f && (f = h, c = null)
}
var i = s(f, e);
g ? (m(d, i, "error") || b && "change" == b.type) && d.trigger("timeRangeError") : m(d, i, c)
}
}
}
function l(a) {
return a.is("input") ? a.val() : a.data("ui-timepicker-value")
}
function m(a, b, c) {
if (a.is("input")) {
a.val(b);
var d = a.data("timepicker-settings");
d.useSelect && "select" != c && "initial" != c && a.data("timepicker-list").val(f(t(b), d))
}
return a.data("ui-timepicker-value") != b ? (a.data("ui-timepicker-value", b), "select" == c ? a.trigger("selectTime").trigger("changeTime").trigger("change", "timepicker") : -1 == ["error", "initial"].indexOf(c) && a.trigger("changeTime"), !0) : (a.trigger("selectTime"), !1)
}
function n(a) {
switch (a.keyCode) {
case 13:
case 9:
return;
default:
a.preventDefault()
}
}
function o(c) {
var d = a(this),
e = d.data("timepicker-list");
if (!e || !b(e)) {
if (40 != c.keyCode) return ! 0;
y.show.call(d.get(0)),
e = d.data("timepicker-list"),
h(d) || d.focus()
}
switch (c.keyCode) {
case 13:
return q(d) && (k.call(d.get(0), {
type: "change"
}), y.hide.apply(this)),
c.preventDefault(),
!1;
case 38:
var f = e.find(".ui-timepicker-selected");
return f.length ? f.is(":first-child") || (f.removeClass("ui-timepicker-selected"), f.prev().addClass("ui-timepicker-selected"), f.prev().position().top < f.outerHeight() && e.scrollTop(e.scrollTop() - f.outerHeight())) : (e.find("li").each(function(b, c) {
return a(c).position().top > 0 ? (f = a(c), !1) : void 0
}), f.addClass("ui-timepicker-selected")),
!1;
case 40:
return f = e.find(".ui-timepicker-selected"),
0 === f.length ? (e.find("li").each(function(b, c) {
return a(c).position().top > 0 ? (f = a(c), !1) : void 0
}), f.addClass("ui-timepicker-selected")) : f.is(":last-child") || (f.removeClass("ui-timepicker-selected"), f.next().addClass("ui-timepicker-selected"), f.next().position().top + 2 * f.outerHeight() > e.outerHeight() && e.scrollTop(e.scrollTop() + f.outerHeight())),
!1;
case 27:
e.find("li").removeClass("ui-timepicker-selected"),
y.hide();
break;
case 9:
y.hide();
break;
default:
return ! 0
}
}
function p(c) {
var d = a(this),
e = d.data("timepicker-list"),
f = d.data("timepicker-settings");
if (!e || !b(e) || f.disableTextInput) return ! 0;
switch (c.keyCode) {
case 96:
case 97:
case 98:
case 99:
case 100:
case 101:
case 102:
case 103:
case 104:
case 105:
case 48:
case 49:
case 50:
case 51:
case 52:
case 53:
case 54:
case 55:
case 56:
case 57:
case 65:
case 77:
case 80:
case 186:
case 8:
case 46:
f.typeaheadHighlight ? j(d, e) : e.hide()
}
}
function q(a) {
var b = a.data("timepicker-settings"),
c = a.data("timepicker-list"),
d = null,
e = c.find(".ui-timepicker-selected");
return e.hasClass("ui-timepicker-disabled") ? !1 : (e.length && (d = e.data("time")), null !== d && ("string" != typeof d && (d = s(d, b)), m(a, d, "select")), !0)
}
function r(a, b) {
a = Math.abs(a);
var c, d, e = Math.round(a / 60),
f = [];
return 60 > e ? f = [e, w.mins] : (c = Math.floor(e / 60), d = e % 60, 30 == b && 30 == d && (c += w.decimal + 5), f.push(c), f.push(1 == c ? w.hr: w.hrs), 30 != b && d && (f.push(d), f.push(w.mins))),
f.join(" ")
}
function s(b, c) {
if ("number" != typeof b) return null;
var d = parseInt(b % 60),
e = parseInt(b / 60 % 60),
f = parseInt(b / 3600 % 24),
g = new Date(1970, 0, 2, f, e, d, 0);
if (isNaN(g.getTime())) return null;
if ("function" === a.type(c.timeFormat)) return c.timeFormat(g);
for (var h, i, j = "",
k = 0; k < c.timeFormat.length; k++) switch (i = c.timeFormat.charAt(k)) {
case "a":
j += g.getHours() > 11 ? w.pm: w.am;
break;
case "A":
j += g.getHours() > 11 ? w.PM: w.AM;
break;
case "g":
h = g.getHours() % 12,
j += 0 === h ? "12": h;
break;
case "G":
h = g.getHours(),
b === v && (h = c.show2400 ? 24 : 0),
j += h;
break;
case "h":
h = g.getHours() % 12,
0 !== h && 10 > h && (h = "0" + h),
j += 0 === h ? "12": h;
break;
case "H":
h = g.getHours(),
b === v && (h = c.show2400 ? 24 : 0),
j += h > 9 ? h: "0" + h;
break;
case "i":
var e = g.getMinutes();
j += e > 9 ? e: "0" + e;
break;
case "s":
d = g.getSeconds(),
j += d > 9 ? d: "0" + d;
break;
case "\\":
k++,
j += c.timeFormat.charAt(k);
break;
default:
j += i
}
return j
}
function t(a, b) {
if ("" === a || null === a) return null;
if ("object" == typeof a) return 3600 * a.getHours() + 60 * a.getMinutes() + a.getSeconds();
if ("string" != typeof a) return a;
a = a.toLowerCase().replace(/[\s\.]/g, ""),
("a" == a.slice( - 1) || "p" == a.slice( - 1)) && (a += "m");
var c = "(" + w.am.replace(".", "") + "|" + w.pm.replace(".", "") + "|" + w.AM.replace(".", "") + "|" + w.PM.replace(".", "") + ")?",
d = new RegExp("^" + c + "([0-9]?[0-9])\\W?([0-5][0-9])?\\W?([0-5][0-9])?" + c + "$"),
e = a.match(d);
if (!e) return null;
var f = parseInt(1 * e[2], 10);
if (f > 24) {
if (b && b.wrapHours === !1) return null;
f %= 24
}
var g = e[1] || e[5],
h = f;
if (12 >= f && g) {
var i = g == w.pm || g == w.PM;
h = 12 == f ? i ? 12 : 0 : f + (i ? 12 : 0)
}
var j = 1 * e[3] || 0,
k = 1 * e[4] || 0,
l = 3600 * h + 60 * j + k;
if (12 > f && !g && b && b._twelveHourTime && b.scrollDefault) {
var m = l - b.scrollDefault();
0 > m && m >= v / -2 && (l = (l + v / 2) % v)
}
return l
}
function u(a, b) {
return a == v && b.show2400 ? a: a % v
}
var v = 86400,
w = {
am: "am",
pm: "pm",
AM: "AM",
PM: "PM",
decimal: ".",
mins: "mins",
hr: "hr",
hrs: "hrs"
},
x = {
appendTo: "body",
className: null,
closeOnWindowScroll: !1,
disableTextInput: !1,
disableTimeRanges: [],
disableTouchKeyboard: !1,
durationTime: null,
forceRoundTime: !1,
maxTime: null,
minTime: null,
noneOption: !1,
orientation: "l",
roundingFunction: function(a, b) {
if (null === a) return null;
if ("number" != typeof b.step) return a;
var c = a % (60 * b.step),
d = b.minTime || 0;
return c -= d % (60 * b.step),
c >= 30 * b.step ? a += 60 * b.step - c: a -= c,
u(a, b)
},
scrollDefault: null,
selectOnBlur: !1,
show2400: !1,
showDuration: !1,
showOn: ["click", "focus"],
showOnFocus: !0,
step: 30,
stopScrollPropagation: !1,
timeFormat: "g:ia",
typeaheadHighlight: !0,
useSelect: !1,
wrapHours: !0
},
y = {
init: function(b) {
return this.each(function() {
var e = a(this),
f = [];
for (var g in x) e.data(g) && (f[g] = e.data(g));
var h = a.extend({},
x, b, f);
if (h.lang && (w = a.extend(w, h.lang)), h = c(h), e.data("timepicker-settings", h), e.addClass("ui-timepicker-input"), h.useSelect) d(e);
else {
if (e.prop("autocomplete", "off"), h.showOn) for (var i in h.showOn) e.on(h.showOn[i] + ".timepicker", y.show);
e.on("change.timepicker", k),
e.on("keydown.timepicker", o),
e.on("keyup.timepicker", p),
h.disableTextInput && e.on("keydown.timepicker", n),
k.call(e.get(0), null, "initial")
}
})
},
show: function(c) {
var e = a(this),
f = e.data("timepicker-settings");
if (c && c.preventDefault(), f.useSelect) return void e.data("timepicker-list").focus();
h(e) && e.blur();
var k = e.data("timepicker-list");
if (!e.prop("readonly") && (k && 0 !== k.length && "function" != typeof f.durationTime || (d(e), k = e.data("timepicker-list")), !b(k))) {
e.data("ui-timepicker-value", e.val()),
j(e, k),
y.hide(),
k.show();
var m = {};
f.orientation.match(/r/) ? m.left = e.offset().left + e.outerWidth() - k.outerWidth() + parseInt(k.css("marginLeft").replace("px", ""), 10) : m.left = e.offset().left + parseInt(k.css("marginLeft").replace("px", ""), 10);
var n;
n = f.orientation.match(/t/) ? "t": f.orientation.match(/b/) ? "b": e.offset().top + e.outerHeight(!0) + k.outerHeight() > a(window).height() + a(window).scrollTop() ? "t": "b",
"t" == n ? (k.addClass("ui-timepicker-positioned-top"), m.top = e.offset().top - k.outerHeight() + parseInt(k.css("marginTop").replace("px", ""), 10)) : (k.removeClass("ui-timepicker-positioned-top"), m.top = e.offset().top + e.outerHeight() + parseInt(k.css("marginTop").replace("px", ""), 10)),
k.offset(m);
var o = k.find(".ui-timepicker-selected");
if (!o.length) {
var p = t(l(e));
null !== p ? o = i(e, k, p) : f.scrollDefault && (o = i(e, k, f.scrollDefault()))
}
if (o && o.length) {
var q = k.scrollTop() + o.position().top - o.outerHeight();
k.scrollTop(q)
} else k.scrollTop(0);
return f.stopScrollPropagation && a(document).on("wheel.ui-timepicker", ".ui-timepicker-wrapper",
function(b) {
b.preventDefault();
var c = a(this).scrollTop();
a(this).scrollTop(c + b.originalEvent.deltaY)
}),
a(document).on("touchstart.ui-timepicker mousedown.ui-timepicker", g),
a(window).on("resize.ui-timepicker", g),
f.closeOnWindowScroll && a(document).on("scroll.ui-timepicker", g),
e.trigger("showTimepicker"),
this
}
},
hide: function(c) {
var d = a(this),
e = d.data("timepicker-settings");
return e && e.useSelect && d.blur(),
a(".ui-timepicker-wrapper").each(function() {
var c = a(this);
if (b(c)) {
var d = c.data("timepicker-input"),
e = d.data("timepicker-settings");
e && e.selectOnBlur && q(d),
c.hide(),
d.trigger("hideTimepicker")
}
}),
this
},
option: function(b, e) {
return "string" == typeof b && "undefined" == typeof e ? a(this).data("timepicker-settings")[b] : this.each(function() {
var f = a(this),
g = f.data("timepicker-settings"),
h = f.data("timepicker-list");
"object" == typeof b ? g = a.extend(g, b) : "string" == typeof b && (g[b] = e),
g = c(g),
f.data("timepicker-settings", g),
k.call(f.get(0), {
type: "change"
},
"initial"),
h && (h.remove(), f.data("timepicker-list", !1)),
g.useSelect && d(f)
})
},
getSecondsFromMidnight: function() {
return t(l(this))
},
getTime: function(a) {
var b = this,
c = l(b);
if (!c) return null;
var d = t(c);
if (null === d) return null;
a || (a = new Date);
var e = new Date(a);
return e.setHours(d / 3600),
e.setMinutes(d % 3600 / 60),
e.setSeconds(d % 60),
e.setMilliseconds(0),
e
},
isVisible: function() {
var a = this,
c = a.data("timepicker-list");
return ! (!c || !b(c))
},
setTime: function(a) {
var b = this,
c = b.data("timepicker-settings");
if (c.forceRoundTime) var d = f(t(a), c);
else var d = s(t(a), c);
return a && null === d && c.noneOption && (d = a),
m(b, d),
b.data("timepicker-list") && j(b, b.data("timepicker-list")),
this
},
remove: function() {
var a = this;
if (a.hasClass("ui-timepicker-input")) {
var b = a.data("timepicker-settings");
return a.removeAttr("autocomplete", "off"),
a.removeClass("ui-timepicker-input"),
a.removeData("timepicker-settings"),
a.off(".timepicker"),
a.data("timepicker-list") && a.data("timepicker-list").remove(),
b.useSelect && a.show(),
a.removeData("timepicker-list"),
this
}
}
};
a.fn.timepicker = function(b) {
return this.length ? y[b] ? this.hasClass("ui-timepicker-input") ? y[b].apply(this, Array.prototype.slice.call(arguments, 1)) : this: "object" != typeof b && b ? void a.error("Method " + b + " does not exist on jQuery.timepicker") : y.init.apply(this, arguments) : this
}
});

timepicker php strtotime 8hours的更多相关文章

  1. php函数强大的 strtotime

    使用strtotime可以将各种格式的时间字符串转换为时间戳 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 转换常规时间格式 echo date('Y-m-d H:i: ...

  2. PHP的性能大坑--strtotime函数

    最近在做一个游戏数据统计后台,最基础的功能是通过分析注册登录日志来展示用户数据.在公司内部测试,用户量很少,所以就没有发现什么性能问题.但是这两天一起放到真实的测试环境,用户量噌噌地就涌进来了,从下午 ...

  3. 【Android自学日记】使用DatePicker以及TimePicker显示当前日期和时间

    DatePicker 1.获取一个日历对象: Calendar cal=Calendar.getInstance(); 2.获取当前日期及时间: int year=cal.get(Calendar.Y ...

  4. php strtotime 在32位操作系统下的限制

    php strtotime 在32位操作系统下的限制 <?php class DateHelper{ /** * 在32位操作系统下,超过 2038-01-19 03:14:07 ,会溢出 * ...

  5. Android5.0 TimePicker,DatePicker恢复成低版本滚动模式

    新版中的TimePicker DatePicker是不支持使用遥控器的, 恢复成低版本滚动模式只需要是xml文件加上一句即可: android:datePickerMode="spinner ...

  6. 关于PHP函数time() date() 和 strtotime() 的时区问题

    最近项目中有个需求, 要记录新注册用户的次日登录情况, 于是写出了如下代码: $create_time = '用户注册时间'; //格式 Y-m-d H:i:s $time = time(); $la ...

  7. angularJs , json,html片段,bootstrap timepicker angular

    css .demotest { width: %; height: auto; overflow: auto; position: relative; margin: auto; margin-top ...

  8. Windows 8.1 新增控件之 TimePicker

    之前已经为大家介绍过DatePicker 控件的相关内容,有日期控件当然就得有时间控件,本篇将和各位一起了解TimePicker 的使用方法. 先来介绍一下ClockIdentifier 属性,默认情 ...

  9. C#时间转整型(时间戳),模仿php strtotime函数的部分功能

    今天需要将一个基于MS SQL数据库的新闻系统数据导入phpcms v9,源系统新闻日期格式为"2014-01-15 10:45:49",而phpcms中使用的是整型时间戳,在ph ...

随机推荐

  1. 微服务实战-使用API Gateway

    当你决定将应用作为一组微服务时,需要决定应用客户端如何与微服务交互.在单体式程序中,通常只有一组冗余的或者负载均衡的服务提供点.在微服务架构中,每一个微服务暴露一组细粒度的服务提供点.在本篇文章中,我 ...

  2. Windows Phone 性能优化(一)

    在实际的项目开发过程中,应用的性能优化是一个永恒的话题,也是开发者群里最常讨论的话题之一,我在之 前的公司做 wp项目时,也遇到过性能的瓶颈.当页面中加载的内容越来越多时,内存涨幅非常明显(特别是 一 ...

  3. Jquery右下角消息提示框

    找了好久,终于找到一个不错的提示框jquery,免费给大家一起用下吧(可是花了我很多积分哦),顺便重写了一下样式,原来的样式真的不敢恭维啊... 下载地址:http://files.cnblogs.c ...

  4. [mysql] Navicat for mysql_导入导出表结构

    应用场景: 当 ① 由于权限控制,远程数据库在外网不能访问 ② 远程数据库连接和查询比较慢,影响工作效率 这时,可以将远程数据库的表结构和已有数据COPY到本地的mysql服务器来进行开发. 只需要将 ...

  5. linux -- ubuntuserver 安装图形界面

    安装Gnome桌面 1.安装全部桌面环境,其实Ubuntu系列桌面实际上有几种桌面应用程序,包括Ubuntu-desktop.Kubunut-desktop和Xubuntu- desktop. 我们就 ...

  6. MD5的各种实现——也是醉了

    MD5即Message-Digest Algorithm 5(信息-摘要算法5).用于确保信息传输完整一致. 是计算机广泛使用的杂凑算法之中的一个(又译摘要算法.哈希算法),主流编程语言普遍已有MD5 ...

  7. [NOIP 2014复习]第二章:搜索

    一.深度优先搜索(DFS) 1.Wikioi 1066引水入城 题目描写叙述 Description 在一个遥远的国度,一側是风景秀美的湖泊,还有一側则是漫无边际的沙漠.该国的行政 区划十分特殊,刚好 ...

  8. matlab获取图片的size属性,长宽

    width=size(imread(‘文件名'),2): %获取图像宽length=size(imread(‘文件名'),1): %获取图像长 g=imread(['D:\文件及下载相关\桌面\代码 ...

  9. Hive将txt、csv等文本文件导入hive表

    1.将txt文本文件放置hdfs目录下 2.登录hive并进入到指定数据库 3.创建表 create external table if not exists fun_user_external ( ...

  10. ios开发之 -- 强制横屏

    在写项目的时候,会遇到很多稀奇古怪的需求,我就碰到一个写一个网站,需要强制横屏,然后不需要上架,网上看了很多大神的需求,基本都能实现,但是不太好用, 自己参考搞了一个,代码如下: AppDelegat ...