`
hegz
  • 浏览: 441160 次
  • 性别: Icon_minigender_1
  • 来自: 茂名
社区版块
存档分类
最新评论

自用代码[JSON编解码、日期校验]

    博客分类:
  • PHP
阅读更多
    /**
     * 將数组转换成json格式数据
     *
     * 如果 PHP 版本小于5.2,则使用 ./FLEA/FLEA/Ajax/JSON.php 类,
     * 如果 PHP 版本不小于5.2,则使用 PHP 内置的 json_encode() 函数
     * @param array $arr
     * @return string
     */
    function json_encode($arr)
    {
        if (version_compare(PHP_VERSION,"5.2","<"))
        {
            require_once("./lib/FLEA/FLEA/Ajax/JSON.php");   // 如果<5.2使用FleaPHP中的JSON类
            $json = new Services_JSON();  // 实例化JSON
            $data=$json->encode($arr);    //将数组数据转成JSON格式数据
        } else {
            $data = json_encode($arr);    // 使用PHP内嵌的JSON编码函数
        }
        return $data;
    }

    /**
     * 將json格式数据转换成数组
     *
     * 如果 PHP 版本小于5.2,则使用 ./FLEA/FLEA/Ajax/JSON.php 类,
     * 如果 PHP 版本不小于5.2,则使用 PHP 内置的 json_encode() 函数
     * @param array $arr
     * @return string
     */
    function json_decode($arr)
    {
        if (version_compare(PHP_VERSION,"5.2","<"))
        {
            require_once("./lib/FLEA/FLEA/Ajax/JSON.php");
            $json = new Services_JSON();
            $data=$json->decode($arr);
        } else {
            $data = json_decode($arr, true);
        }
        return $data;
    }
    
    /**
     * 日期合法性校验
     *
     * @param string $dateStr
     * @param Boolean return
     * 日期字串输入格式:2009-04-14
     */
    function validDate($dateStr)
    {
        $str = explode('-', $dateStr);
        $arrCount = count($str);
        if($arrCount != 3) {
            return false;
        }

        $year = $str[0];
        $month = $str[1];
        $date = $str[2];

        //$months = array(31,28,31,30,31,30,31,31,30,31,30,31);
        
        if (strlen($year) != 4 || $year < 0) {
            return false;    
        }
        
        // 闰年计算
        //$leap = false;
        //if ($year % 4 == 0 && ($year % 100 != 0 || $year % 400 == 0)) {
        //    $leap = true;
        //}
        // +++++++++++++++++++++++++++++++++++++++++++++
        $leap = date('L', strtotime("{$year}-01-01"));
        
        if ($date < 1 || $date > 31 || $month < 1 || $month > 12) {
            return false;
        }
        
        $tdate = date('t', strtotime("{$year}-{$month}-01"));
        if ($date > $tdate) {
            return false;
        }
        return true;
    }
 
分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics