时间格式统一

发现有些时间格式真的很乱各种格式都用,整理时间格式为统一处理函数。
下面粘贴一个测试得例子,和函数方法在这里
<?php 
header('Content-type:text/html;charset=utf-8');
$datas = array(
    '2019.6',
    '2018.6.28',
    '2017.6.2',
    '2016.06.08',
    '2016.06',
    '2015.10.28',
    '2015.10.8',
    '2015.10.08',
    '2015/10/9',
    '2015-10-08',
    '2015-10-9',
    '2015/10/9',
);

/**
* PHP 批量处理时间日期格式
* @param  [type] $timeDatas [ 待处理时间日期集合 ]
* @param  [type] $separated [ 日期集合中的分隔类型 ]
* @param  [type] $symbol     [ 结果选择分隔符 ]
* @return [type]          [ 返回统一后的时间格式 ]
*
* demo
* echo getDateDiff(time()-3600);
*/
function setTimeDatas ($timeDatas , $separated = array('.', '/', '-'), $symbol='/'){
    if(empty($timeDatas)) {
        return ;
    }
    // 校验数据类型是否为数组
    if(is_array($timeDatas)) {
        // 遍历数据
        foreach ($timeDatas as $key => $value) {
            echo $value.'<br>';

            // 校验字符串中是否出现当前数组中的分隔符
            foreach($separated as $k => $v) {
                // 字符串查找是否含有分隔符存在
                $find = strstr($value, $v);
                if (!empty($find)) {
                    // 统一数据格式,替换数据中的 . 为 /
                    $value = str_replace($v, '/', $value);
                }
            }
            // 获取 / 出现次数
            $findNum = substr_count($value, '/');
            // 出现次数小于 2 将日期格式补全 当月 1号
            if($findNum < 2) {
                $value .= '/01';
            }

            // 将日期格式转为时间戳
            $timestamp = strtotime($value);

            // 时间戳转为统一格式日期
            $date = date('Y'.$symbol.'m'.$symbol.'d', $timestamp);

            $newDatas[] = $date;
        }
    } else {
        // 对普通字符串进行分隔符替换
        $newDatas = str_replace($separated['0'], '/', $timeDatas);

        // 获取 / 出现次数
        $findNum = substr_count($newDatas, '/');
        // 出现次数小于 2 将日期格式补全 当月 1号
        if($findNum < 2) {
            $newDatas .= '/01';
        }
    }
    return $newDatas;
}


$newDatas = setTimeDatas($datas, array('.', '/', '-'), '/');
$strdatas = setTimeDatas('2019-05', array('-'), '/');

echo "<pre>";
echo "原数据:";
echo "<hr>";
var_dump($datas);

echo "新数据:";
echo "<hr>";
var_dump($newDatas);

echo "单个时间:";
echo "<hr>";
var_dump($strdatas);
echo "</pre>";

时间格式统一

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/266785.html

(0)
上一篇 2022年6月7日
下一篇 2022年6月7日

相关推荐

发表回复

登录后才能评论