xxb/module/common/view/datepicker.html.php
2023-10-23 15:51:36 +08:00

101 lines
3.3 KiB
PHP
Executable File

<?php
/**
* The datepicker view of common module of XXB.
*
* @copyright Copyright 2009-2023 禅道软件(青岛)有限公司(ZenTao Software (Qingdao) Co., Ltd., www.zentao.net)
* @license ZOSL (https://zpl.pub/page/zoslv1.html)
* @author Chunsheng Wang <chunsheng@cnezsoft.com>
* @package common
* @version $Id: datepicker.html.php 4029 2016-08-26 06:50:41Z liugang $
* @link https://xuanim.com
*/
if($extView = $this->getExtViewFile(__FILE__)){include $extView; return helper::cd();}
$clientLang = $this->app->getClientLang();
css::import($jsRoot . 'datetimepicker/css/min.css');
js::import($jsRoot . 'datetimepicker/js/min.js');
?>
<style>
.only-pick-time table {width: 100%}
.only-pick-time table td {width: 150px}
.only-pick-time table > tfoot .today, .only-pick-time table > thead {display: none !important;}
</style>
<script>
/**
* Format date to a string
*
* @param string format
* @return string
*/
Date.prototype.format = function(format)
{
var date =
{
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"h+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"q+": Math.floor((this.getMonth() + 3) / 3),
"S+": this.getMilliseconds()
};
if (/(y+)/i.test(format))
{
format = format.replace(RegExp.$1, (this.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (var k in date)
{
if (new RegExp("(" + k + ")").test(format))
{
format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
}
}
return format;
}
$(function()
{
$.fn.fixedDate = function()
{
return $(this).each(function()
{
var $this = $(this);
if($this.hasClass('date-picker-up') || (!$this.hasClass('date-picker-down') && $this.offset().top + 200 > $(document.body).height()))
{
$this.attr('data-picker-position', 'top-right');
}
if($this.val() != '' && !$this.hasClass('form-time'))
{
var date = new Date(Date.parse($this.val().replace(/-/g, '/')));
if(!date.valueOf()) date = new Date();
if($this.hasClass('form-datetime')) $this.val(date.format('yyyy-MM-dd hh:mm:ss'));
else if($this.hasClass('form-month')) $this.val(date.format('yyyy-MM'));
else $this.val(date.format('yyyy-MM-dd'));
}
$(this).attr('autocomplete', 'off');
return $this;
});
};
var options =
{
language: '<?php echo $clientLang; ?>',
weekStart: 1,
todayBtn: 1,
autoclose: 1,
todayHighlight: 1,
startView: 2,
forceParse: 0,
showMeridian: 1,
format: 'yyyy-mm-dd hh:ii'
}
window.datetimepickerDefaultOptions = options;
$('.form-datetime').fixedDate().datetimepicker(options);
$('.form-date').fixedDate().datetimepicker($.extend(options, {minView: 2, format: 'yyyy-mm-dd'}));
$('.form-time').fixedDate().datetimepicker($.extend(options, {eleClass: 'only-pick-time', startView: 1, minView: 0, maxView: 1, format: 'hh:ii'}));
$('.form-month').fixedDate().datetimepicker($.extend(options, {startView: 3, minView: 3, format: 'yyyy-mm'}));
});
</script>