admin/app/common/helpers/DateRange.php

177 lines
7.7 KiB
PHP

<?php
/**
* Created by PhpStorm.
* Author:
* Date: 2017/2/28
* Time: 上午9:38
*/
namespace app\common\helpers;
class DateRange
{
/**
* 【表单控件】: 范围日期选择器
* @param string $name 表单input名称
* @param array $value 表单input值
* array('start' => 开始日期,'end' => 结束日期)
* @param boolean $time 是否显示时间
* @return string
*/
public static function tplFormFieldDateRange($name, $value = array(), $time = false) {
$s = '';
if (empty($time) && !defined('TPL_INIT_DATERANGE_DATE')) {
$s = '
<script type="text/javascript">
require(["daterangepicker"], function($){
$(function(){
$(".daterange.daterange-date").each(function(){
var elm = this;
$(this).daterangepicker({
startDate: $(elm).prev().prev().val(),
endDate: $(elm).prev().val(),
format: "YYYY-MM-DD"
}, function(start, end){
$(elm).find(".date-title").html(start.toDateStr() + " 至 " + end.toDateStr());
$(elm).prev().prev().val(start.toDateStr());
$(elm).prev().val(end.toDateStr());
});
});
});
});
</script>
';
define('TPL_INIT_DATERANGE_DATE', true);
}
if (!empty($time) && !defined('TPL_INIT_DATERANGE_TIME')) {
$s = '
<script type="text/javascript">
require(["daterangepicker"], function($){
$(function(){
$(".daterange.daterange-time").each(function(){
var elm = this;
$(this).daterangepicker({
startDate: $(elm).prev().prev().val(),
endDate: $(elm).prev().val(),
format: "YYYY-MM-DD HH:mm",
timePicker: true,
timePicker12Hour : false,
timePickerIncrement: 1,
minuteStep: 1
}, function(start, end){
$(elm).find(".date-title").html(start.toDateTimeStr() + " 至 " + end.toDateTimeStr());
$(elm).prev().prev().val(start.toDateTimeStr());
$(elm).prev().val(end.toDateTimeStr());
});
});
});
});
</script>
';
define('TPL_INIT_DATERANGE_TIME', true);
}
if (isset($value['starttime']) && isset($value['start'])) {
if($value['start']) {
$value['starttime'] = empty($time) ? date('Y-m-d',strtotime($value['start'])) : date('Y-m-d H:i',strtotime($value['start']));
}
$value['starttime'] = empty($value['starttime']) ? (empty($time) ? date('Y-m-d') : date('Y-m-d H:i') ): $value['starttime'];
} else {
$value['starttime'] = '请选择';
}
if (isset($value['endtime']) && isset($value['end'])) {
if($value['end']) {
$value['endtime'] = empty($time) ? date('Y-m-d',strtotime($value['end'])) : date('Y-m-d H:i',strtotime($value['end']));
}
$value['endtime'] = empty($value['endtime']) ? $value['starttime'] : $value['endtime'];
} else {
$value['endtime'] = '请选择';
}
$s .= '
<input name="'.$name . '[start]'.'" type="hidden" value="'. $value['starttime'].'" />
<input name="'.$name . '[end]'.'" type="hidden" value="'. $value['endtime'].'" />
<button class="btn btn-info daterange '.(!empty($time) ? 'daterange-time' : 'daterange-date').'" type="button"><span class="date-title">'.$value['starttime'].' 至 '.$value['endtime'].'</span> <i class="fa fa-calendar"></i></button>
';
return $s;
}
/**
* 【表单控件】: 日期选择器
* @param string $name 表单input名称
* @param array $value 表单input值
* array('start' => 开始日期,'end' => 结束日期)
* @param boolean $time 是否显示时间
* @return string
*/
public static function tplFormFieldDate($name, $value = array(), $time = false) {
$s = '';
if (empty($time) && !defined('TPL_INIT_DATERANGE_DATE')) {
$s = '
<script type="text/javascript">
require(["daterangepicker"], function($){
$(function(){
$(".daterange.daterange-date").each(function(){
var elm = this;
$(this).daterangepicker({
startDate: $(elm).prev().prev().val(),
format: "YYYY-MM-DD"
}, function(start){
$(elm).find(".date-title").html(start.toDateStr());
$(elm).prev().prev().val(start.toDateStr());
});
});
});
});
</script>
';
define('TPL_INIT_DATERANGE_DATE', true);
}
if (!empty($time) && !defined('TPL_INIT_DATERANGE_TIME')) {
$s = '
<script type="text/javascript">
require(["daterangepicker"], function($){
$(function(){
$(".daterange.daterange-time").each(function(){
var elm = this;
$(this).daterangepicker({
startDate: $(elm).prev().prev().val(),
endDate: $(elm).prev().val(),
format: "YYYY-MM-DD HH:mm",
timePicker: true,
timePicker12Hour : false,
timePickerIncrement: 1,
minuteStep: 1
}, function(start, end){
$(elm).find(".date-title").html(start.toDateTimeStr() + " 至 " + end.toDateTimeStr());
$(elm).prev().prev().val(start.toDateTimeStr());
$(elm).prev().val(end.toDateTimeStr());
});
});
});
});
</script>
';
define('TPL_INIT_DATERANGE_TIME', true);
}
if (isset($value['starttime']) && isset($value['start'])) {
if($value['start']) {
$value['starttime'] = empty($time) ? date('Y-m-d',strtotime($value['start'])) : date('Y-m-d H:i',strtotime($value['start']));
}
$value['starttime'] = empty($value['starttime']) ? (empty($time) ? date('Y-m-d') : date('Y-m-d H:i') ): $value['starttime'];
} else {
$value['starttime'] = '请选择';
}
$s .= '
<input name="'.$name . '[start]'.'" type="hidden" value="'. $value['starttime'].'" />
<input name="'.$name . '[end]'.'" type="hidden" value="'. $value['endtime'].'" />
<button class="btn btn-info daterange '.(!empty($time) ? 'daterange-time' : 'daterange-date').'" type="button"><span class="date-title">'.$value['starttime'].'</span> <i class="fa fa-calendar"></i></button>
';
return $s;
}
}