Zen Cart 138 在PHP5.3环境下出现的Fatal error: Cannot redeclare date_diff()

Zen Cart 138 在PHP5.3环境下出现的Fatal error: Cannot redeclare date_diff() in includes/functions/functions_general.php错误的解决方法

原因是在这个文件中已存在函数:date_diff()了,此时,我们需要做到与旧版本的PHP兼容,将Zen Cart中的date_diff()函数进行修改,解决方法如下:

if(function_exists(‘date_diff‘) && phpversion() >= 5.3){
    date_diff(date_create($date1), date_create($date2));
}else{
    function date_diff($date1, $date2) {
        //$date1 today, or any other day
        //$date2 date to check against

        $d1 = explode("-", $date1);
        $y1 = $d1[0];
        $m1 = $d1[1];
        $d1 = $d1[2];

        $d2 = explode("-", $date2);
        $y2 = $d2[0];
        $m2 = $d2[1];
        $d2 = $d2[2];

        $date1_set = mktime(0,0,0, $m1, $d1, $y1);
        $date2_set = mktime(0,0,0, $m2, $d2, $y2);

        return(round(($date2_set-$date1_set)/(60*60*24)));
    }
}

在上面,我们对date_diff()函数是否存在进行判断,并判断PHP版本号,另外,也可以看到我们使用了PHP新版本的函 数:date_create(),根据给出的日期时间参数返回 Unix 时间戳,详细资料可以参看:http://www.php.net/manual/en/function.date-create.php。
另外,PHP5.3中的date_diff()详细情况也可以查看:http://www.php.net/manual/en/function.date-diff.php

时间: 2024-10-27 03:09:39

Zen Cart 138 在PHP5.3环境下出现的Fatal error: Cannot redeclare date_diff()的相关文章

关于在Visual Studio 2008/2010 和Opencv平台下出现LINK : fatal error

http://blog.sina.com.cn/s/blog_9015f3230101bbef.html 关于在Visual Studio 2008/2010 和Opencv平台下出现LINK : fatal error LNK1000/1104等错误解决办法 LINK : fatal error LNK1104: 无法打开文件“.obj” 由于自己常用Visual Studio 2008/2010 和Opencv平台编程,像 LINK : fatal error LNK1104: 无法打开文件

zencart低版本由php5.2.17升级PHP5.3环境下错误及解决方案

如果是前台错误,打开文件 \includes\extra_configures\enable_error_logging.php如果是后台错误,打开文件 \admin\includes\extra_configures\enable_error_logging.php 查找 @ini_set('display_errors', 0);修改为 @ini_set('display_errors', 1); 问题1.巨多Deprecated:错误或页面直接空白 解决方案: /home/public_h

centos环境下登录mysql报 ERROR 1045 (28000)怎么解决

新入手一台虚拟机,Centos7系列的操作系统,安装mysql后,执行连接出现了Mysql ERROR 1045 (28000):的错误.遇到同样问题的朋友,可以参考如下解决方法. 工具/原料 Centos mysql.mariadb 方法/步骤 首先使用如下命令停止mysql或者mariadb服务. service mariadb stop 使用mysqld_safe来启动mysqld服务器: mysqld_safe --user=mysql --skip-grant-tables --ski

windows下PHP中Fatal error Call to undefined function curl_init()的解决方法

参考官方解决方法:http://nz.php.net/manual/en/curl.installation.php 1.php安装目录下的ext文件夹下面是否有php_curl.dll文件,然后右键->属性->详细信息,查看版本号是否和PHP版本一致:2.php.ini文件;extension=php_curl.dll前面的";"去掉如果以上方法还不行的话,请继续往下:3.(如果是windows32位系统)复制 php_curl.dll, ssleay32.dll, li

Mac下安装LNMP(Nginx+PHP5.6)环境(转)

安装Homebrew 最近工作环境切换到Mac,所以以OS X Yosemite(10.10.1)为例,记录一下从零开始安装Mac下LNMP环境的过程 确保系统已经安装xcode,然后使用一行命令安装依赖管理工具Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 之后就可以使用 brew install FORMULA 来安装所需要的依赖了.

Mac下安装LNMP(Nginx+PHP5.6)环境

Mac下安装LNMP(Nginx+PHP5.6)环境 安装Homebrew 最近工作环境切换到Mac,所以以OS X Yosemite(10.10.1)为例,记录一下从零开始安装Mac下LNMP环境的过程 确保系统已经安装xcode,然后使用一行命令安装依赖管理工具Homebrew ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" 之后就可以使用 brew

dedecms 在php5.4以上环境下 无法保存中文

dedecms gbk版本在php5.4以上环境下 无法保存中文 原因在于5.4.0对这个函数的变化:htmlspecialchars5.4.0   The default value for the encoding parameter was changed to UTF-8. 默认的编码是utf8 所以需要更改htmlspecialchars($value, ENT_COMPAT ,'GB2312')

Zen Cart 常用SQL命令

网店日常维护过程中,难免要跟各种批量操作打交道, 虽然大多数操作可以通过批量上传 (easy populate) 和 快速更新 模块来完成, 但在应用便捷性和一些功能性的调整上, 总有一定的局限性; 网站的全部数据均存放在数据库中, 有什么变更 直接操作数据库无疑是最便捷的方式, 既然要动数据库, SQL语句是肯定离不开了, 日常跟网站打交道, 要接触熟悉各种代码, 这里又多了一种代码, 有点儿让人头大, 因此也就了本文, 下面为日常应用中可能涉及到的常用的批量操作SQL语句, 可多条同时执行

linux网络环境下socket套接字编程(UDP文件传输)

今天我们来介绍一下在linux网络环境下使用socket套接字实现两个进程下文件的上传,下载,和退出操作! 在socket套接字编程中,我们当然可以基于TCP的传输协议来进行传输,但是在文件的传输中,如果我们使用TCP传输,会造成传输速度较慢的情况,所以我们在进行文件传输的过程中,最好要使用UDP传输. 在其中,我们需要写两个程序,一个客户端,一个服务端,在一个终端中,先运行服务端,在运行客户端,在服务端和客户端都输入IP地址和端口号,注意服务端和客户端的端口号要相同,然后选择功能,在linux