mirror of
https://github.com/kuaifan/dootask.git
synced 2025-12-11 18:42:54 +00:00
no message
This commit is contained in:
parent
1227a05e2d
commit
93387c289e
@ -2,7 +2,6 @@
|
||||
|
||||
namespace App\Http\Controllers\Api;
|
||||
|
||||
use App\Module\Doo;
|
||||
use Request;
|
||||
use Session;
|
||||
use Response;
|
||||
@ -10,6 +9,8 @@ use Madzipper;
|
||||
use Carbon\Carbon;
|
||||
use App\Models\User;
|
||||
use App\Module\Base;
|
||||
use App\Module\Doo;
|
||||
use App\Module\Timer;
|
||||
use App\Module\Ihttp;
|
||||
use App\Tasks\PushTask;
|
||||
use App\Module\BillExport;
|
||||
@ -758,7 +759,7 @@ class ApproveController extends AbstractController
|
||||
if (empty($name) || empty($date)) {
|
||||
return Base::retError('参数错误');
|
||||
}
|
||||
if (!(is_array($date) && Base::isDate($date[0]) && Base::isDate($date[1]))) {
|
||||
if (!(is_array($date) && Timer::isDate($date[0]) && Timer::isDate($date[1]))) {
|
||||
return Base::retError('日期选择错误');
|
||||
}
|
||||
if (Carbon::parse($date[1])->timestamp - Carbon::parse($date[0])->timestamp > 35 * 86400) {
|
||||
@ -817,7 +818,7 @@ class ApproveController extends AbstractController
|
||||
// 计算审批耗时
|
||||
$startTime = Carbon::parse($val['start_time'])->timestamp;
|
||||
$endTime = $val['end_time'] ? Carbon::parse($val['end_time'])->timestamp : time();
|
||||
$approval_time = Doo::translate(Base::timeDiff($startTime, $endTime)); // 审批耗时
|
||||
$approval_time = Doo::translate(Timer::timeDiff($startTime, $endTime)); // 审批耗时
|
||||
// 计算时长
|
||||
$varStartTime = Carbon::parse($val['var']['start_time']);
|
||||
$varEndTime = Carbon::parse($val['var']['end_time']);
|
||||
@ -859,8 +860,8 @@ class ApproveController extends AbstractController
|
||||
BillExport::create()->setTitle($title)->setHeadings($headings)->setData($datas)->setStyles(["A1:Y1" => ["font" => ["bold" => true]]])
|
||||
];
|
||||
//
|
||||
$fileName = $title . '_' . Base::time() . '.xlsx';
|
||||
$filePath = "temp/approve/export/" . date("Ym", Base::time());
|
||||
$fileName = $title . '_' . Timer::time() . '.xlsx';
|
||||
$filePath = "temp/approve/export/" . date("Ym", Timer::time());
|
||||
$export = new BillMultipleExport($sheets);
|
||||
$res = $export->store($filePath . "/" . $fileName);
|
||||
if ($res != 1) {
|
||||
@ -978,9 +979,9 @@ class ApproveController extends AbstractController
|
||||
'department' => $process['department'],
|
||||
'type' => $process['var']['type'],
|
||||
'start_time' => $process['var']['start_time'],
|
||||
'start_day_of_week' => '周' . Base::getTimeWeek(Carbon::parse($process['var']['start_time'])->timestamp),
|
||||
'start_day_of_week' => '周' . Timer::getWeek(Carbon::parse($process['var']['start_time'])->timestamp),
|
||||
'end_time' => $process['var']['end_time'],
|
||||
'end_day_of_week' => '周' . Base::getTimeWeek(Carbon::parse($process['var']['end_time'])->timestamp),
|
||||
'end_day_of_week' => '周' . Timer::getWeek(Carbon::parse($process['var']['end_time'])->timestamp),
|
||||
'description' => $process['var']['description'],
|
||||
'comment_nickname' => $process['comment_user_id'] ? User::userid2nickname($process['comment_user_id']) : '',
|
||||
'comment_content' => $process['comment_contents']['content'] ?? '',
|
||||
|
||||
@ -11,6 +11,7 @@ use App\Module\Doo;
|
||||
use App\Models\File;
|
||||
use App\Models\User;
|
||||
use App\Module\Base;
|
||||
use App\Module\Timer;
|
||||
use App\Module\Extranet;
|
||||
use App\Module\TimeRange;
|
||||
use App\Models\FileContent;
|
||||
@ -591,7 +592,7 @@ class DialogController extends AbstractController
|
||||
->value('id'));
|
||||
}
|
||||
$data['list'] = $list;
|
||||
$data['time'] = Base::time();
|
||||
$data['time'] = Timer::time();
|
||||
// 记录当前打开的任务对话
|
||||
if ($dialog->type == 'group' && $dialog->group_type == 'task') {
|
||||
$user->task_dialog_id = $dialog->id;
|
||||
|
||||
@ -12,7 +12,7 @@ use App\Models\FileLink;
|
||||
use App\Models\FileUser;
|
||||
use App\Models\User;
|
||||
use App\Module\Base;
|
||||
use App\Module\Doo;
|
||||
use App\Module\Timer;
|
||||
use App\Module\Ihttp;
|
||||
use Response;
|
||||
use Session;
|
||||
@ -1020,9 +1020,9 @@ class FileController extends AbstractController
|
||||
if (empty($fileName)) {
|
||||
$fileName = 'Package_' . $user->userid;
|
||||
}
|
||||
$fileName .= '_' . Base::time() . '.zip';
|
||||
$fileName .= '_' . Timer::time() . '.zip';
|
||||
|
||||
$filePath = "temp/file/pack/" . date("Ym", Base::time());
|
||||
$filePath = "temp/file/pack/" . date("Ym", Timer::time());
|
||||
$zipFile = "app/" . $filePath . "/" . $fileName;
|
||||
$zipPath = storage_path($zipFile);
|
||||
|
||||
|
||||
@ -12,6 +12,7 @@ use App\Module\Doo;
|
||||
use App\Models\File;
|
||||
use App\Models\User;
|
||||
use App\Module\Base;
|
||||
use App\Module\Timer;
|
||||
use Swoole\Coroutine;
|
||||
use App\Models\Deleted;
|
||||
use App\Models\Project;
|
||||
@ -1003,7 +1004,7 @@ class ProjectController extends AbstractController
|
||||
}
|
||||
//
|
||||
if (is_array($time)) {
|
||||
if (Base::isDateOrTime($time[0]) && Base::isDateOrTime($time[1])) {
|
||||
if (Timer::isDateOrTime($time[0]) && Timer::isDateOrTime($time[1])) {
|
||||
$builder->betweenTime(Carbon::parse($time[0])->startOfDay(), Carbon::parse($time[1])->endOfDay());
|
||||
}
|
||||
}
|
||||
@ -1196,7 +1197,7 @@ class ProjectController extends AbstractController
|
||||
if (count($userid) > 100) {
|
||||
return Base::retError('导出成员限制最多100个');
|
||||
}
|
||||
if (!(is_array($time) && Base::isDateOrTime($time[0]) && Base::isDateOrTime($time[1]))) {
|
||||
if (!(is_array($time) && Timer::isDateOrTime($time[0]) && Timer::isDateOrTime($time[1]))) {
|
||||
return Base::retError('时间选择错误');
|
||||
}
|
||||
if (Carbon::parse($time[1])->timestamp - Carbon::parse($time[0])->timestamp > 90 * 86400) {
|
||||
@ -1279,9 +1280,9 @@ class ProjectController extends AbstractController
|
||||
$planTotalTime = $endTime - $startTime;
|
||||
$residueTime = $planTotalTime - $totalTime;
|
||||
if ($residueTime < 0) {
|
||||
$overTime = Doo::translate(Base::timeFormat(abs($residueTime)));
|
||||
$overTime = Doo::translate(Timer::timeFormat(abs($residueTime)));
|
||||
}
|
||||
$planTime = Doo::translate(Base::timeDiff($startTime, $endTime));
|
||||
$planTime = Doo::translate(Timer::timeDiff($startTime, $endTime));
|
||||
}
|
||||
$actualTime = $task->complete_at ? $totalTime : 0; // 实际完成用时
|
||||
$statusText = '未完成';
|
||||
@ -1322,10 +1323,10 @@ class ProjectController extends AbstractController
|
||||
$task->complete_at ?: '-',
|
||||
$task->archived_at ?: '-',
|
||||
$planTime,
|
||||
$actualTime ? Doo::translate(Base::timeFormat($actualTime)) : '-',
|
||||
$actualTime ? Doo::translate(Timer::timeFormat($actualTime)) : '-',
|
||||
$overTime,
|
||||
$developTime > 0 ? Doo::translate(Base::timeFormat($developTime)) : '-',
|
||||
$testTime > 0 ? Doo::translate(Base::timeFormat($testTime)) : '-',
|
||||
$developTime > 0 ? Doo::translate(Timer::timeFormat($developTime)) : '-',
|
||||
$testTime > 0 ? Doo::translate(Timer::timeFormat($testTime)) : '-',
|
||||
Base::filterEmoji(User::userid2nickname($task->ownerid)) . " (ID: {$task->ownerid})",
|
||||
Base::filterEmoji(User::userid2nickname($task->userid)) . " (ID: {$task->userid})",
|
||||
Doo::translate($statusText),
|
||||
@ -1362,8 +1363,8 @@ class ProjectController extends AbstractController
|
||||
} else {
|
||||
$fileName .= '的任务统计';
|
||||
}
|
||||
$fileName = Doo::translate($fileName) . '_' . Base::time() . '.xls';
|
||||
$filePath = "temp/task/export/" . date("Ym", Base::time());
|
||||
$fileName = Doo::translate($fileName) . '_' . Timer::time() . '.xls';
|
||||
$filePath = "temp/task/export/" . date("Ym", Timer::time());
|
||||
$export = new BillMultipleExport($sheets);
|
||||
$res = $export->store($filePath . "/" . $fileName);
|
||||
if ($res != 1) {
|
||||
@ -1464,9 +1465,9 @@ class ProjectController extends AbstractController
|
||||
$planTotalTime = $endTime - $startTime;
|
||||
$residueTime = $planTotalTime - $totalTime;
|
||||
if ($residueTime < 0) {
|
||||
$overTime = Doo::translate(Base::timeFormat(abs($residueTime)));
|
||||
$overTime = Doo::translate(Timer::timeFormat(abs($residueTime)));
|
||||
}
|
||||
$planTime = Doo::translate(Base::timeDiff($startTime, $endTime));
|
||||
$planTime = Doo::translate(Timer::timeDiff($startTime, $endTime));
|
||||
}
|
||||
$ownerIds = $task->taskUser->where('owner', 1)->pluck('userid')->toArray();
|
||||
$ownerNames = [];
|
||||
@ -1496,8 +1497,8 @@ class ProjectController extends AbstractController
|
||||
BillExport::create()->setTitle($title)->setHeadings($headings)->setData($data)->setStyles(["A1:J1" => ["font" => ["bold" => true]]])
|
||||
];
|
||||
//
|
||||
$fileName = $title . '_' . Base::time() . '.xls';
|
||||
$filePath = "temp/task/export/" . date("Ym", Base::time());
|
||||
$fileName = $title . '_' . Timer::time() . '.xls';
|
||||
$filePath = "temp/task/export/" . date("Ym", Timer::time());
|
||||
$export = new BillMultipleExport($sheets);
|
||||
$res = $export->store($filePath . "/" . $fileName);
|
||||
if ($res != 1) {
|
||||
@ -2541,10 +2542,10 @@ class ProjectController extends AbstractController
|
||||
}
|
||||
$log->detail = Doo::translate($log->detail);
|
||||
$log->time = [
|
||||
'ymd' => date(date("Y", $timestamp) == date("Y", Base::time()) ? "m-d" : "Y-m-d", $timestamp),
|
||||
'ymd' => date(date("Y", $timestamp) == date("Y", Timer::time()) ? "m-d" : "Y-m-d", $timestamp),
|
||||
'hi' => date("h:i", $timestamp) ,
|
||||
'week' => Doo::translate("周" . Base::getTimeWeek($timestamp)),
|
||||
'segment' => Doo::translate(Base::getTimeDayeSegment($timestamp)),
|
||||
'week' => Doo::translate("周" . Timer::getWeek($timestamp)),
|
||||
'segment' => Doo::translate(Timer::getDayeSegment($timestamp)),
|
||||
];
|
||||
$record = Base::json2array($log->record);
|
||||
if (is_array($record['change'])) {
|
||||
|
||||
@ -11,6 +11,7 @@ use App\Module\Doo;
|
||||
use App\Models\File;
|
||||
use App\Models\User;
|
||||
use App\Module\Base;
|
||||
use App\Module\Timer;
|
||||
use App\Ldap\LdapUser;
|
||||
use App\Models\Meeting;
|
||||
use App\Models\Project;
|
||||
@ -1091,7 +1092,7 @@ class UsersController extends AbstractController
|
||||
return Base::retError('链接已经使用过', ['code' => 2]);
|
||||
|
||||
$oldTime = Carbon::parse($res->created_at)->timestamp;
|
||||
$time = Base::Time();
|
||||
$time = Timer::Time();
|
||||
|
||||
// 30分钟失效
|
||||
if (abs($time - $oldTime) > 1800) {
|
||||
|
||||
@ -4,6 +4,7 @@ namespace App\Models;
|
||||
|
||||
|
||||
use App\Module\Base;
|
||||
use App\Module\Timer;
|
||||
use Illuminate\Database\Eloquent\SoftDeletes;
|
||||
|
||||
/**
|
||||
@ -76,7 +77,7 @@ class FileContent extends AbstractModel
|
||||
'name' => $name,
|
||||
'ext' => $fileExt
|
||||
]));
|
||||
return Base::fillUrl("online/preview/{$name}?key={$key}&version=" . Base::getVersion() . "&__=" . Base::msecTime());
|
||||
return Base::fillUrl("online/preview/{$name}?key={$key}&version=" . Base::getVersion() . "&__=" . Timer::msecTime());
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@ -2,6 +2,7 @@
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
use App\Module\Timer;
|
||||
use DB;
|
||||
use Arr;
|
||||
use Request;
|
||||
@ -438,7 +439,7 @@ class ProjectTask extends AbstractModel
|
||||
// 时间
|
||||
if ($times) {
|
||||
list($start, $end) = is_string($times) ? explode(",", $times) : (is_array($times) ? $times : []);
|
||||
if (Base::isDate($start) && Base::isDate($end) && $start != $end) {
|
||||
if (Timer::isDate($start) && Timer::isDate($end) && $start != $end) {
|
||||
$task->start_at = Carbon::parse($start);
|
||||
$task->end_at = Carbon::parse($end);
|
||||
}
|
||||
@ -537,7 +538,7 @@ class ProjectTask extends AbstractModel
|
||||
if ($task->parent_id == 0 && $subtasks && is_array($subtasks)) {
|
||||
foreach ($subtasks as $subtask) {
|
||||
list($start, $end) = is_string($subtask['times']) ? explode(",", $subtask['times']) : (is_array($subtask['times']) ? $subtask['times'] : []);
|
||||
if (Base::isDate($start) && Base::isDate($end) && $start != $end) {
|
||||
if (Timer::isDate($start) && Timer::isDate($end) && $start != $end) {
|
||||
if (Carbon::parse($start)->lt($task->start_at)) {
|
||||
throw new ApiException('子任务开始时间不能小于主任务开始时间');
|
||||
}
|
||||
@ -663,7 +664,7 @@ class ProjectTask extends AbstractModel
|
||||
if ($mainTask?->complete_at) {
|
||||
throw new ApiException('主任务已完成,无法修改子任务状态');
|
||||
}
|
||||
if (Base::isDate($data['complete_at'])) {
|
||||
if (Timer::isDate($data['complete_at'])) {
|
||||
// 标记已完成
|
||||
if ($this->complete_at) {
|
||||
throw new ApiException('任务已完成');
|
||||
@ -774,7 +775,7 @@ class ProjectTask extends AbstractModel
|
||||
$this->end_at = null;
|
||||
$times = $data['times'];
|
||||
list($start, $end, $desc) = is_string($times) ? explode(",", $times) : (is_array($times) ? $times : []);
|
||||
if (Base::isDate($start) && Base::isDate($end) && $start != $end) {
|
||||
if (Timer::isDate($start) && Timer::isDate($end) && $start != $end) {
|
||||
$start_at = Carbon::parse($start);
|
||||
$end_at = Carbon::parse($end);
|
||||
if ($this->parent_id > 0) {
|
||||
|
||||
@ -5,6 +5,7 @@ namespace App\Models;
|
||||
use App\Module\Base;
|
||||
use App\Module\Doo;
|
||||
use App\Module\Extranet;
|
||||
use App\Module\Timer;
|
||||
use App\Tasks\JokeSoupTask;
|
||||
use Cache;
|
||||
use Carbon\Carbon;
|
||||
@ -210,7 +211,7 @@ class UserBot extends AbstractModel
|
||||
if (!in_array('manual', $setting['modes'])) {
|
||||
return '暂未开放手动签到。';
|
||||
}
|
||||
if ($error = UserBot::checkinBotCheckin('manual-' . $userid, Base::time(), true)) {
|
||||
if ($error = UserBot::checkinBotCheckin('manual-' . $userid, Timer::time(), true)) {
|
||||
return $error;
|
||||
}
|
||||
return null;
|
||||
@ -230,7 +231,7 @@ class UserBot extends AbstractModel
|
||||
} else {
|
||||
return '错误的定位签到。';
|
||||
}
|
||||
if ($error = UserBot::checkinBotCheckin('locat-' . $userid, Base::time(), true)) {
|
||||
if ($error = UserBot::checkinBotCheckin('locat-' . $userid, Timer::time(), true)) {
|
||||
return $error;
|
||||
}
|
||||
return null;
|
||||
@ -262,7 +263,7 @@ class UserBot extends AbstractModel
|
||||
$timeEnd = strtotime("{$nowDate} {$times[1]}");
|
||||
$timeAdvance = max($timeStart - $advance, strtotime($nowDate));
|
||||
$timeDelay = min($timeEnd + $delay, strtotime("{$nowDate} 23:59:59"));
|
||||
if (Base::time() < $timeAdvance || $timeDelay < Base::time()) {
|
||||
if (Timer::time() < $timeAdvance || $timeDelay < Timer::time()) {
|
||||
return "不在有效时间内,有效时间为:" . date("H:i", $timeAdvance) . "-" . date("H:i", $timeDelay);
|
||||
}
|
||||
//
|
||||
@ -367,13 +368,13 @@ class UserBot extends AbstractModel
|
||||
], $botUser->userid, false, false, $type != "up");
|
||||
}
|
||||
};
|
||||
if ($timeAdvance <= Base::time() && Base::time() < $timeEnd) {
|
||||
if ($timeAdvance <= Timer::time() && Timer::time() < $timeEnd) {
|
||||
// 上班打卡通知(从最早打卡时间 到 下班打卡时间)
|
||||
foreach ($checkins as $checkin) {
|
||||
$sendMsg('up', $checkin);
|
||||
}
|
||||
}
|
||||
if ($timeEnd <= Base::time() && Base::time() <= $timeDelay) {
|
||||
if ($timeEnd <= Timer::time() && Timer::time() <= $timeDelay) {
|
||||
// 下班打卡通知(下班打卡时间 到 最晚打卡时间)
|
||||
foreach ($checkins as $checkin) {
|
||||
$sendMsg('down', $checkin);
|
||||
|
||||
@ -4,6 +4,7 @@ namespace App\Models;
|
||||
|
||||
use App\Exceptions\ApiException;
|
||||
use App\Module\Base;
|
||||
use App\Module\Timer;
|
||||
use Carbon\Carbon;
|
||||
use Guanguans\Notify\Factory;
|
||||
use Guanguans\Notify\Messages\EmailMessage;
|
||||
@ -122,7 +123,7 @@ class UserEmailVerification extends AbstractModel
|
||||
}
|
||||
|
||||
$oldTime = Carbon::parse($emailVerify->created_at)->timestamp;
|
||||
$time = Base::Time();
|
||||
$time = Timer::Time();
|
||||
|
||||
// 30分钟失效
|
||||
if (abs($time - $oldTime) > 1800) {
|
||||
|
||||
@ -937,70 +937,7 @@ class Base
|
||||
*/
|
||||
public static function isTwoArray($array)
|
||||
{
|
||||
if (!is_array($array)) {
|
||||
return false;
|
||||
}
|
||||
$json = self::array2json($array);
|
||||
return (bool)self::leftExists($json, '[');
|
||||
}
|
||||
|
||||
/**
|
||||
* 检测日期格式
|
||||
* @param string $str 需要检测的字符串
|
||||
* @return bool
|
||||
*/
|
||||
public static function isDate($str)
|
||||
{
|
||||
$strArr = explode('-', $str);
|
||||
if (empty($strArr) || count($strArr) != 3) {
|
||||
return false;
|
||||
} else {
|
||||
list($year, $month, $day) = $strArr;
|
||||
if (checkdate(intval($month), intval($day), intval($year))) {
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 检测时间格式
|
||||
* @param string $str 需要检测的字符串
|
||||
* @return bool
|
||||
*/
|
||||
public static function isTime($str)
|
||||
{
|
||||
$strArr = explode(':', $str);
|
||||
$count = count($strArr);
|
||||
if ($count < 2 || $count > 3) {
|
||||
return false;
|
||||
}
|
||||
$hour = $strArr[0];
|
||||
if ($hour < 0 || $hour > 23) {
|
||||
return false;
|
||||
}
|
||||
$minute = $strArr[1];
|
||||
if ($minute < 0 || $minute > 59) {
|
||||
return false;
|
||||
}
|
||||
if ($count == 3) {
|
||||
$second = $strArr[2];
|
||||
if ($second < 0 || $second > 59) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 检测 日期格式 或 时间格式
|
||||
* @param string $str 需要检测的字符串
|
||||
* @return bool
|
||||
*/
|
||||
public static function isDateOrTime($str)
|
||||
{
|
||||
return self::isDate($str) || self::isTime($str);
|
||||
return is_array($array) && count(array_filter($array, 'is_array')) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
@ -1323,27 +1260,6 @@ class Base
|
||||
return RequestContext::save('setting_' . $setname, $setting);
|
||||
}
|
||||
|
||||
/**
|
||||
* 时间转毫秒时间戳
|
||||
* @param $time
|
||||
* @return float|int
|
||||
*/
|
||||
public static function strtotimeM($time)
|
||||
{
|
||||
if (str_contains($time, '.')) {
|
||||
list($t, $m) = explode(".", $time);
|
||||
if (is_string($t)) {
|
||||
$t = strtotime($t);
|
||||
}
|
||||
$time = $t . str_pad($m, 3, "0", STR_PAD_LEFT);
|
||||
}
|
||||
if (is_numeric($time)) {
|
||||
return (int) str_pad($time, 13, "0");
|
||||
} else {
|
||||
return strtotime($time) * 1000;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取设置值
|
||||
* @param $setname
|
||||
@ -1357,120 +1273,6 @@ class Base
|
||||
return $array[$keyname] ?? $defaultVal;
|
||||
}
|
||||
|
||||
/**
|
||||
* 秒 (转) 年、天、时、分、秒
|
||||
* @param $time
|
||||
* @return array|bool
|
||||
*/
|
||||
public static function sec2time($time)
|
||||
{
|
||||
if (is_numeric($time)) {
|
||||
$value = array(
|
||||
"years" => 0, "days" => 0, "hours" => 0,
|
||||
"minutes" => 0, "seconds" => 0,
|
||||
);
|
||||
if ($time >= 86400) {
|
||||
$value["days"] = floor($time / 86400);
|
||||
$time = ($time % 86400);
|
||||
}
|
||||
if ($time >= 3600) {
|
||||
$value["hours"] = floor($time / 3600);
|
||||
$time = ($time % 3600);
|
||||
}
|
||||
if ($time >= 60) {
|
||||
$value["minutes"] = floor($time / 60);
|
||||
$time = ($time % 60);
|
||||
}
|
||||
$value["seconds"] = floor($time);
|
||||
return (array)$value;
|
||||
} else {
|
||||
return (bool)FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 年、天、时、分、秒 (转) 秒
|
||||
* @param $value
|
||||
* @return int
|
||||
*/
|
||||
public static function time2sec($value)
|
||||
{
|
||||
$time = intval($value["seconds"]);
|
||||
$time += intval($value["minutes"] * 60);
|
||||
$time += intval($value["hours"] * 3600);
|
||||
$time += intval($value["days"] * 86400);
|
||||
$time += intval($value["years"] * 31536000);
|
||||
return $time;
|
||||
}
|
||||
|
||||
/**
|
||||
* 阿拉伯数字转化为中文
|
||||
* @param $num
|
||||
* @return string
|
||||
*/
|
||||
public static function chinaNum($num)
|
||||
{
|
||||
$china = array('零', '一', '二', '三', '四', '五', '六', '七', '八', '九');
|
||||
$arr = str_split($num);
|
||||
$txt = '';
|
||||
for ($i = 0; $i < count($arr); $i++) {
|
||||
$txt .= $china[$arr[$i]];
|
||||
}
|
||||
return $txt;
|
||||
}
|
||||
|
||||
/**
|
||||
* 阿拉伯数字转化为中文(用于星期,七改成日)
|
||||
* @param $num
|
||||
* @return string
|
||||
*/
|
||||
public static function chinaNumZ($num)
|
||||
{
|
||||
return str_replace("七", "日", Base::chinaNum($num));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取(时间戳转)今天是星期几,只返回(几)
|
||||
* @param string|number $unixTime
|
||||
* @return string
|
||||
*/
|
||||
public static function getTimeWeek($unixTime = '')
|
||||
{
|
||||
$unixTime = is_numeric($unixTime) ? $unixTime : time();
|
||||
$weekarray = ['日', '一', '二', '三', '四', '五', '六'];
|
||||
return $weekarray[date('w', $unixTime)];
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取(时间戳转)现在时间段:深夜、凌晨、早晨、上午.....
|
||||
* @param string|number $unixTime
|
||||
* @return string
|
||||
*/
|
||||
public static function getTimeDayeSegment($unixTime = '')
|
||||
{
|
||||
$unixTime = is_numeric($unixTime) ? $unixTime : time();
|
||||
$H = date('H', $unixTime);
|
||||
if ($H >= 19) {
|
||||
return '晚上';
|
||||
} elseif ($H >= 18) {
|
||||
return '傍晚';
|
||||
} elseif ($H >= 13) {
|
||||
return '下午';
|
||||
} elseif ($H >= 12) {
|
||||
return '中午';
|
||||
} elseif ($H >= 8) {
|
||||
return '上午';
|
||||
} elseif ($H >= 5) {
|
||||
return '早晨';
|
||||
} elseif ($H >= 1) {
|
||||
return '凌晨';
|
||||
} elseif ($H >= 0) {
|
||||
return '深夜';
|
||||
} else {
|
||||
return '';
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* JSON返回
|
||||
* @param $param
|
||||
@ -1616,38 +1418,6 @@ class Base
|
||||
return $hour . '小时';
|
||||
}
|
||||
|
||||
/**
|
||||
* 时间格式化
|
||||
* @param $date
|
||||
* @return false|string
|
||||
*/
|
||||
public static function forumDate($date)
|
||||
{
|
||||
$dur = time() - $date;
|
||||
if ($date > Carbon::now()->startOf('day')->timestamp) {
|
||||
//今天
|
||||
if ($dur < 60) {
|
||||
return max($dur, 1) . '秒前';
|
||||
} elseif ($dur < 3600) {
|
||||
return floor($dur / 60) . '分钟前';
|
||||
} elseif ($dur < 86400) {
|
||||
return floor($dur / 3600) . '小时前';
|
||||
} else {
|
||||
return date("H:i", $date);
|
||||
}
|
||||
} elseif ($date > Carbon::now()->subDays()->startOf('day')->timestamp) {
|
||||
//昨天
|
||||
return '昨天';
|
||||
} elseif ($date > Carbon::now()->subDays(2)->startOf('day')->timestamp) {
|
||||
//前天
|
||||
return '前天';
|
||||
} elseif ($dur > 86400) {
|
||||
//x天前
|
||||
return floor($dur / 86400) . '天前';
|
||||
}
|
||||
return date("Y-m-d", $date);
|
||||
}
|
||||
|
||||
/**
|
||||
* 创建Carbon对象
|
||||
* @param $var
|
||||
@ -1734,76 +1504,6 @@ class Base
|
||||
return $str;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取时间戳
|
||||
* @return int
|
||||
*/
|
||||
public static function time()
|
||||
{
|
||||
return intval(RequestContext::get("start_time", time()));
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取毫秒时间戳
|
||||
* @return float
|
||||
*/
|
||||
public static function msecTime()
|
||||
{
|
||||
list($msec, $sec) = explode(' ', microtime());
|
||||
$time = explode(".", $sec . ($msec * 1000));
|
||||
return $time[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* 时间差(不够1个小时算一个小时)
|
||||
* @param int $s 开始时间戳
|
||||
* @param int $e 结束时间戳
|
||||
* @return string
|
||||
*/
|
||||
public static function timeDiff($s, $e)
|
||||
{
|
||||
$time = $e - $s;
|
||||
$days = 0;
|
||||
if ($time >= 86400) { // 如果大于1天
|
||||
$days = (int)($time / 86400);
|
||||
$time = $time % 86400; // 计算天后剩余的毫秒数
|
||||
}
|
||||
$hours = 0;
|
||||
if ($time >= 3600) { // 如果大于1小时
|
||||
$hours = (int)($time / 3600);
|
||||
$time = $time % 3600; // 计算小时后剩余的毫秒数
|
||||
}
|
||||
$minutes = ceil($time / 60); // 剩下的毫秒数都算作分
|
||||
$daysStr = $days > 0 ? $days . '天' : '';
|
||||
$hoursStr = ($hours > 0 || ($days > 0 && $minutes > 0)) ? $hours . '时' : '';
|
||||
$minuteStr = ($minutes > 0) ? $minutes . '分' : '';
|
||||
return $daysStr . $hoursStr . $minuteStr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 时间秒数格式化
|
||||
* @param int $time 时间秒数
|
||||
* @return string
|
||||
*/
|
||||
public static function timeFormat($time)
|
||||
{
|
||||
$days = 0;
|
||||
if ($time >= 86400) { // 如果大于1天
|
||||
$days = (int)($time / 86400);
|
||||
$time = $time % 86400; // 计算天后剩余的毫秒数
|
||||
}
|
||||
$hours = 0;
|
||||
if ($time >= 3600) { // 如果大于1小时
|
||||
$hours = (int)($time / 3600);
|
||||
$time = $time % 3600; // 计算小时后剩余的毫秒数
|
||||
}
|
||||
$minutes = ceil($time / 60); // 剩下的毫秒数都算作分
|
||||
$daysStr = $days > 0 ? $days . '天' : '';
|
||||
$hoursStr = ($hours > 0 || ($days > 0 && $minutes > 0)) ? $hours . '时' : '';
|
||||
$minuteStr = ($minutes > 0) ? $minutes . '分' : '';
|
||||
return $daysStr . $hoursStr . $minuteStr;
|
||||
}
|
||||
|
||||
/**
|
||||
* 取ip前3段
|
||||
* @param $ip
|
||||
|
||||
@ -9,6 +9,7 @@ use App\Models\WebSocketDialogMsg;
|
||||
use App\Module\Base;
|
||||
use App\Module\Doo;
|
||||
use App\Module\Extranet;
|
||||
use App\Module\Timer;
|
||||
use Cache;
|
||||
use Carbon\Carbon;
|
||||
|
||||
@ -41,14 +42,14 @@ class CheckinRemindTask extends AbstractTask
|
||||
//
|
||||
if ($remindin > 0) {
|
||||
$timeRemindin = $timeStart - $remindin;
|
||||
if ($timeRemindin <= Base::time() && Base::time() <= $timeStart) {
|
||||
if ($timeRemindin <= Timer::time() && Timer::time() <= $timeStart) {
|
||||
// 签到打卡提醒
|
||||
$this->remind('in');
|
||||
}
|
||||
}
|
||||
if ($remindexceed > 0) {
|
||||
$timeRemindexceed = $timeStart + $remindexceed;
|
||||
if ($timeRemindexceed <= Base::time() && Base::time() <= $timeRemindexceed + 300) {
|
||||
if ($timeRemindexceed <= Timer::time() && Timer::time() <= $timeRemindexceed + 300) {
|
||||
// 签到缺卡提醒
|
||||
$this->remind('exceed');
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user