PHP系统时区8小时差设置方法

 更新时间:2016年11月25日 17:40  点击:1873

php教程系统时区8小时差设置方法
修改php系统时区的两种方式:
1、修改php.ini文件中的设置,找到[date]下的“;date.timezone=”,将该项修改为date.timezone=asia/hong_kong (prc 中国时间),然后重新启动apache服务器。

2、在应用程序中,使用时间日期函数之前添加“date_default_timezone_set(“asia/hong_kong”)”函数

修改php.ini文件后获取本地时间:
php代码:
<?php
echo “现在是北京时间:”.date(“y-m-d h:i:s”).”<p>”;
?>
显示结果:
现在是北京时间:2010-11-30 20:50:03 (与本地时间相符)
php.ini修改后的代码:
[date]
; defines the default timezone used by the date functions
; http://php.net/date.timezone
date.timezone = prc

下面看看更多方法

1.在php.ini文件中修改设置。
[date]
   //defines the default timezone used by the date functions
   date.timezone = asia/shanghai
这里真是。。。可以设置shanghai,chongqin,hong_kong,taibei...等等,可就是没有找到beijing,不知道是什么原因。

2.在php程序中运行时设置。
<?php
    if(date_default_timezone_get() != "1asia/shanghai") date_default_timezone_set("asia/shanghai");
?>
注意:用"date_default_timezone_get"获得的时间设置中有一个1,也不太清楚是杂回事呢。

3.在使用时间时自己多加8*3600秒也是行滴。
<?php
    echo date("y-m-d h:i:s",time()+8*3600);
?>

注:
自php5.0开始,用php获取系统时间时,时间比当前时间少8个小时。原因是php.ini中没有设置timezone时,php是使用的utc时间,所以在中国时间要少8小时

 

php教程 正则匹配unicode 编码正则方法,因为unicode编码的特殊性,所以一般的中文或英文正则是不能正确取到我们想要的内容的,下面来看一款专业的unicode正则表达式吧。

看个unicode编码图。

$words = "0123456789abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrsruvwxyz!@#$%^&*()_+-=[],./{}|<>?'"你好啊我们";
$otherstr=preg_replace("//[x{0080}-x{00ff}]+/iu"," ",$words);
echo 'otherstr:',$otherstr;

装php教程扩展:windows 下的 memcache步骤

1.下载php的扩展dll:http://downloads.php.net/pierre/

2.将.dll放入php的扩展目录下面,一般在php目录中的ext 文件夹中。

3.修改apache目录下bin文件夹中的php.ini,加上extension=php_memcache.dll即可。

4.重启apache服务器,用phpinfo()查看,出现memcache说明配置正确.

值得注意的是:

 必须注意php的编译版本,下载memcache的时候注意要使用同样的编译版本;比如php是使用vc6编译的,那么memcache也应该使用vc6编译版本

下面来看一篇在windows下载安装memcache php教程吧

windows下的memcache安装:
1. 下载memcache的windows稳定版,解压放某个盘下面,比如在c:memcached
2. 在终端(也即cmd命令界面)下输入 ‘c:memcachedmemcached.exe -d install’ 安装
3. 再输入: ‘c:memcachedmemcached.exe -d start’ 启动。note: 以后memcached将作为windows的一个服务每次开机时自动启动。这样服务器端已经安装完毕了。
4.下载php_memcache.dll,请自己查找对应的php版本的文件
5. 在c:winntphp.ini 加入一行 ‘extension=php_memcache.dll’
6.重新启动apache,然后查看一下phpinfo,如果有memcache,那么就说明安装成功!


memcached的基本设置:

-p 监听的端口
-l 连接的ip地址, 默认是本机
-d start 启动memcached服务
-d restart 重起memcached服务
-d stop|shutdown 关闭正在运行的memcached服务
-d install 安装memcached服务
-d uninstall 卸载memcached服务
-u 以的身份运行 (仅在以root运行的时候有效)
-m 最大内存使用,单位mb。默认64mb
-m 内存耗尽时返回错误,而不是删除项
-c 最大同时连接数,默认是1024
-f 块大小增长因子,默认是1.25
-n 最小分配空间,key+value+flags默认是48
-h 显示帮助

memcache环境测试:
运行下面的php文件,如果有输出this is a test!,就表示环境搭建成功。开始领略memcache的魅力把!

< ?php
$mem = new memcache;
$mem->connect(”127.0.0.1′, 11211);
$mem->set(’key’, ‘this is a test!’, 0, 60);
$val = $mem->get(’key’);
echo $val;
?>

include_path 下寻找,然后是当前运行脚本所在目录相对的 include_path 下寻找。例如 include_path 是 . ,当前工作目录是 /www/ ,脚本中要 include 一个 include/a.php教程  并且在该文件中有一句 include "b.php" ,则寻找 b.php  的顺序先是 /www/ ,然后是 /www/include/ 。如果文件名以 ./  或者 ../  开始,则只在当前工作目录相对的 include_path 下寻找。

所以如下所示的文件结构

----a.php

----include/b.php

----include/c.php

 其中a.php

<?php

include 'include/b.php';

?>

-----------------------

b.php

<?php

include 'c.php';

include 'include/c.php';

?>

--------------------------

c.php

<?php

echo 'c.php';

?>

--------------------------

都能正确运行,说明b.php中两种不同包含路径都是可行的,根据include寻找包含文件的方式都能找到c.php。

但是最好的方式还是使用绝对路径,如果使用了绝对路径,php内核就直接通过路径去载入文件而不用去include path逐个搜索文件,增加了代码执行效率

<?php

define('root_path',dirname(__file__));

include root_path.'/c.php';

?>


结论:

显然include 后面路径的格式和php的include path 对程序性能都是存在影响的,include 性能从慢到快的排序是

include 'a.php' < include './a.php' < include '/fullpath/a.php

在代码中,使用绝对路径include文件是最好的选择,因为这样php内核就直接通过路径去载入文件而不用去include path逐个搜索文件。

所以我们最好在项目的公用文件中定义一个项目根目录绝对路径的常量,然后所有的include的路径前都带上这个常量,这样项目中所有的include使用的都是绝对路径,既提高程序性能,也减少了相对路径带来的烦恼。

参考代码(来自emlog):

define('emlog_root', dirname(__file__));

include emlog_root . '/config.php';

如果你的项目中已经大量使用include 'test.php'  这样格式的相对路径且不好大量修改,那么请尽量减少php include path中的路径以提高一定的include性能。因为include path中的路径越少,php搜索文件的时间也越少。

在php教程中中文乱码解决方法
最最觉的是ajax post get 中文乱码了,

用ajax传递中文时..ff会很聪明的自动将中文字符转成十六进制.而bc的ie却非得自己处理..-____!!

最简单的方法就是在需要转义的地方使用js的内置函数 encodeuricomponent

p.s.最初是用escape做中文转义..注意它与 encodeuricomponent 的区别


php中其它引起乱码解决方法分析
1. php文件本身的编码与网页的编码应匹配

  a. 如果欲使用gb2312编码,那么php要输出头:header(“content-type: text/html; charset=gb2312"),静态页面添加,所有文件的编码格式为ansi,可用记事本打开,另存为选择编码为ansi,覆盖源文件。

  b. 如果欲使用utf-8编码,那么php要输出头 :header(“content-type: text/html; charset=utf-8"),静态页面添加,所有文件的编码格式为utf-8。保存为utf-8可能会有点麻烦,一般utf-8文件开头会有bom,如果使用 session就会出问题,可用editplus来保存,在editplus中,工具->参数选择->文件->utf-8签名,选择总是删除,再保存就可以去掉bom信息了。

  2. php本身不是unicode的,所有substr之类的函数得改成mb_substr(需要装mbstring扩展);或者用iconv转码。

  二.php与mysql教程的数据交互

  php与数据库教程的编码应一致

  1. 修改mysql配置文件my.ini或my.cnf,mysql最好用utf8编码

  [mysql]

  default-character-set=utf8

  [mysqld]

  default-character-set=utf8

  default-storage-engine=myisam

  在[mysqld]下加入:

  default-collation=utf8_bin

  init_connect='set names utf8'

  2. 在需要做数据库操作的php程序前加mysql_query("set names '编码'");,编码和php编码一致,如果php编码是gb2312那mysql编码就是gb2312,如果是utf-8那mysql编码就是 utf8,这样插入或检索数据时就不会出现乱码了

  三.php与操作系统相关

  windows和linux的编码是不一样的,在windows环境下,调用php的函数时参数如果是utf-8编码会出现错误,比如 move_uploaded_file()、filesize()、readfile()等,这些函数在处理上传、下载时经常会用到,调用时可能会出现下面的错误:

  warning: move_uploaded_file()[function.move-uploaded-file]:failed to open stream: invalid argument in ...

  warning: move_uploaded_file()[function.move-uploaded-file]:unable to move '' to '' in ...

  warning: filesize() [function.filesize]: stat failed for ... in ...

  warning: readfile() [function.readfile]: failed to open stream: invalid argument in ..

  在linux环境下用gb2312编码虽然不会出现这些错误,但保存后的文件名出现乱码导致无法读取文件,这时可先将参数转换成操作系统识别的编码,编码转换可用mb_convert_encoding(字符串,新编码,原编码)或iconv(原编码,新编码,字符串),这样处理后保存的文件名就不会出现乱码,也可以正常读取文件,实现中文名称文件的上传、下载。

  其实还有更好的解决方法,彻底与系统脱离,也就不用考虑系统是何编码。可以生成一个只有字母和数字的序列作为文件名,而将原来带有中文的名字保存在数据库中,这样调用move_uploaded_file()就不会出现问题,下载的时候只需将文件名改为原来带有中文的名字。实现下载的代码如下

  header("pragma: public");

  header("expires: 0");

  header("cache-component: must-revalidate, post-check=0, pre-check=0");

  header("content-type: $file_type");

  header("content-length: $file_size");

  header("content-disposition: attachment; filename="$file_name"");

  header("content-transfer-encoding: binary");

  readfile($file_path);

  $file_type是文件的类型,$file_name是原来的名字,$file_path是保存在服务上文件的地址

 

[!--infotagslink--]

相关文章

  • Zend studio文件注释模板设置方法

    步骤:Window -> PHP -> Editor -> Templates,这里可以设置(增、删、改、导入等)管理你的模板。新建文件注释、函数注释、代码块等模板的实例新建模板,分别输入Name、Description、Patterna)文件注释Name: 3cfileDescriptio...2013-10-04
  • ps中怎么设置垂直罗马对齐方式?垂直罗马对齐方式设置方法

    photoshop的直排文字工具,打出的字特别是英文字母,默认排列侧向的,如何调整为正向排列呢?下面我们就来看看标准的罗马对齐方式应该怎么设置。 1、在PS中点击“工具面...2017-01-22
  • 小米M2手机wifi上网设置方法

    本文章来介绍的是小米手机的无线网络wifi的设置方法,有需要学习wifi网络设置上网的朋友可详细的参考参考。 ==进入小米手机的主界面: ==然后点击wifi快速打开的地...2016-09-20
  • php设置时区方法介绍

    php默认时区是欧美国家的所以与我们中国时区相差了整整8小时哦,下面我来给各位介绍php设置时区方法,有需要了解的朋友可进入参考。 在 php.ini 中,默认是 date.timez...2016-11-25
  • C++时间戳转化操作实例分析【涉及GMT与CST时区转化】

    这篇文章主要介绍了C++时间戳转化操作,结合实例形式分析了C++时间戳转换与显示操作的原理与具体实现技巧,涉及GMT与CST时区转化,需要的朋友可以参考下...2020-04-25
  • date_default_timezone_set设置中国时区方法

    下面来介绍一下date_default_timezone_set设置中国时区方法,函数简单好用有需要的朋友可参考一下。 date_default_timezone_set — 设定用于一个脚本中所有日...2016-11-25
  • android开发之margin设置方法

    本文章来介绍在手机中如何设置margin哦,我们做网站只要在css定义就好了,在手机中可不一样哦,下面参考在java中的设置方法。 Android在java代码中设置margin 我们平常...2016-09-20
  • Lua游戏开发教程之时区问题详解

    时间显示问题说白了就是时差问题,这篇文章主要给大家介绍了关于Lua游戏开发教程之时区问题的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧...2020-06-30
  • php cookie设置,js cookie设置方法

    php cookie设置,js cookie设置方法 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">...2016-11-25
  • php程序不显示错误设置方法

    如果你碰到php 不显示错误的话可能是你php.ini中把错误提示给关了,解决办法很简单我们只要把php.ini中的display_error = off改成on即可。 解决办法 1、php.ini里...2016-11-25
  • Javascript实现倒计时时差效果

    这篇文章主要为大家详细介绍了Javascript实现倒计时时差效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2017-05-22
  • Linux php时区设置方法总结

    在php中默认时区与中国相关8小时了,下面我来给大家介绍在于linux中与windows系统解决php时差8小时的方法,希望对各位同学有帮助。 大陆内地可用的值是:Asia/Chongqin...2016-11-25
  • php设置时区方法详解介绍

    在php中我们要设置时间的方法有很多种,最常用的就是直接在php.ini中进行修改了date.timezone,如果没有服务器权限可以直接使用date_default_timezone_set函数进行设置下...2016-11-25
  • MySQL修改时区的方法小结

    这篇文章主要介绍了MySQL修改时区的方法,总结分析了三种常见的MySQL时区修改技巧,包括命令行模式、配置文件方式及代码方式,需要的朋友可以参考下...2016-05-20
  • 如何使用PHP和PEAR进行不同时区的转换

    PHP具备一系列日期和时间函数,这为您获取时间信息提供了便利,您可以将这些信息转换为需要的格式并用于计算或者展示给用户。但是假如您想实现一些复杂的功能,事情可能会变...2016-11-25
  • PHP中设置时区方法总结

    使用php的朋友会发现如果你刚安装好apache与php环境,会发现你系统的时间与我们中国时间是有区别的,一般情况是相隔8小时哦,下面我来介绍PHP设置时区设置方法总结。 ...2016-11-25
  • 帝国CMS WAP手机端独立域名绑定和设置方法(适用本站所有图片类作品源码)

    网站主站域名为www.xxx.com,手机版域名为wap.xxx.com建立一个网站绑定一个域名比如wap.xxx.com!网站首页index.html的内容如下:<html> <head> <meta http-equiv="Content-Lan...2016-05-08
  • php系统时区设置方法总结

    php时区是一个非常有意思的问题,安装好apache+php环境之后会发现我们使用date函数获取的日期都与中国时间有8小时区别了,那么这个时区问题要如何解决呢?下面本人整理了一...2016-11-25
  • 在Docker容器中部署Django的时区问题

    本文主要介绍了在Docker容器中部署Django的时区问题,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下...2021-10-20
  • php设置8小时时差程序设置方法

    session_start(); date_default_timezone_set('asia/shanghai'); header("cache-control: no-cache, must-revalidate"); define('applicaton_root', dirname(__fil...2016-11-25