<?php
if (!defined('DEDEINC')) exit('dedebiz');
/**
 * 时间戳小助手
 *
 * @version        $Id: time.helper.php 1 2010-07-05 11:43:09Z tianya $
 * @package        DedeBIZ.Helpers
 * @copyright      Copyright (c) 2022, DedeBIZ.COM
 * @license        https://www.dedebiz.com/license
 * @link           https://www.dedebiz.com
 */
/**
 *  返回格林威治标准时间
 *
 * @param     string  $format  字符串格式
 * @param     string  $timest  时间基准
 * @return    string
 */
if (!function_exists('MyDate')) {
    function MyDate($format = 'Y-m-d H:i:s', $timest = 0)
    {
        global $cfg_cli_time;
        $addtime = $cfg_cli_time * 3600;
        if (empty($format)) {
            $format = 'Y-m-d H:i:s';
        }
        return gmdate($format, $timest + $addtime);
    }
}


/**
 * 从普通时间转换为Linux时间截
 *
 * @param     string   $dtime  普通时间
 * @return    string
 */
if (!function_exists('GetMkTime')) {
    function GetMkTime($dtime)
    {
        if (!preg_match("/[^0-9]/", $dtime)) {
            return $dtime;
        }
        $dtime = trim($dtime);
        $dt = array(1970, 1, 1, 0, 0, 0);
        $dtime = preg_replace("/[\r\n\t]|日|秒/", " ", $dtime);
        $dtime = str_replace("年", "-", $dtime);
        $dtime = str_replace("月", "-", $dtime);
        $dtime = str_replace("时", ":", $dtime);
        $dtime = str_replace("分", ":", $dtime);
        $dtime = trim(preg_replace("/[ ]{1,}/", " ", $dtime));
        $ds = explode(" ", $dtime);
        $ymd = explode("-", $ds[0]);
        if (!isset($ymd[1])) {
            $ymd = explode(".", $ds[0]);
        }
        if (isset($ymd[0])) {
            $dt[0] = $ymd[0];
        }
        if (isset($ymd[1])) $dt[1] = $ymd[1];
        if (isset($ymd[2])) $dt[2] = $ymd[2];
        if (strlen($dt[0]) == 2) $dt[0] = '20'.$dt[0];
        if (isset($ds[1])) {
            $hms = explode(":", $ds[1]);
            if (isset($hms[0])) $dt[3] = $hms[0];
            if (isset($hms[1])) $dt[4] = $hms[1];
            if (isset($hms[2])) $dt[5] = $hms[2];
        }
        foreach ($dt as $k => $v) {
            $v = preg_replace("/^0{1,}/", '', trim($v));
            if ($v == '') {
                $dt[$k] = 0;
            }
        }
        $mt = mktime($dt[3], $dt[4], $dt[5], $dt[1], $dt[2], $dt[0]);
        if (!empty($mt)) {
            return $mt;
        } else {
            return time();
        }
    }
}


/**
 *  减去时间
 *
 * @param     int  $ntime  当前时间
 * @param     int  $ctime  减少的时间
 * @return    int
 */
if (!function_exists('SubDay')) {
    function SubDay($ntime, $ctime)
    {
        $dayst = 3600 * 24;
        $cday = ceil(($ntime - $ctime) / $dayst);
        return $cday;
    }
}


/**
 *  增加天数
 *
 * @param     int  $ntime  当前时间
 * @param     int  $aday   增加天数
 * @return    int
 */
if (!function_exists('AddDay')) {
    function AddDay($ntime, $aday)
    {
        $dayst = 3600 * 24;
        $oktime = $ntime + ($aday * $dayst);
        return $oktime;
    }
}


/**
 *  返回格式化(Y-m-d H:i:s)的是时间
 *
 * @param     int    $mktime  时间戳
 * @return    string
 */
if (!function_exists('GetDateTimeMk')) {
    function GetDateTimeMk($mktime)
    {
        return MyDate('Y-m-d H:i:s', $mktime);
    }
}

/**
 *  返回格式化(Y-m-d)的日期
 *
 * @param     int    $mktime  时间戳
 * @return    string
 */
if (!function_exists('GetDateMk')) {
    function GetDateMk($mktime)
    {
        if ($mktime == "0") return "暂无";
        else return MyDate("Y-m-d", $mktime);
    }
}


/**
 *  将时间转换为距离现在的精确时间
 *
 * @param     int   $seconds  秒数
 * @return    string
 */
if (!function_exists('FloorTime')) {
    function FloorTime($seconds)
    {
        $times = '';
        $days = floor(($seconds / 86400) % 30);
        $hours = floor(($seconds / 3600) % 24);
        $minutes = floor(($seconds / 60) % 60);
        $seconds = floor($seconds % 60);
        if ($seconds >= 1) $times .= $seconds.'秒';
        if ($minutes >= 1) $times = $minutes.'分钟 '.$times;
        if ($hours >= 1) $times = $hours.'小时 '.$times;
        if ($days >= 1)  $times = $days.'天';
        if ($days > 30) return false;
        $times .= '前';
        return str_replace(" ", '', $times);
    }
}