ecshop时间机制.docx_第1页
ecshop时间机制.docx_第2页
ecshop时间机制.docx_第3页
ecshop时间机制.docx_第4页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

ecshop时间机制程序中的时间分为标准时间和显示时间,在获取时间、存储时间、调取时间时统一采用标准时间,ecshop中的标准时间是在安装过程中定义的,一旦安装成功则存储在/data/config.php文件中,以常量:$timezone存在。如下两图一般情况下,我们规定标准时间选用UTC,即格林尼治时间。但在显示给用户的时候,我们需要用ecshop自带的时间转换函数来转换成当地时间。下图是该函数如图可知,关于具体转换成哪个时区的时间,由SESSIONtimezone和商店设置中的timezone字段值决定,因此,我们只需要在【后台-商店设置-基本设置】中把默认时区选择成用户所在的时区就行了。(中国建议设置成东八区,如下图)范例:php程序中转换:JS中转换(此处为倒计时JS):上图的$now_time为PHP程序传过来的当地时间,如函数onload_leftTime()中没有传参,则会自动读取config.php文件中定义的系统标准时间,如传参,则读取传参时间。系统出现8小时误差的原因分析:1、 config文件中标准时间定义正确,为UTC时区,但用gmtime()获取,则获取的是此时的格林尼治时间,比中国晚了8小时。2、 config文件中没有定义标准时间UTC时区,而是定义了RPC时区,而程序用local_date()函数处理时间,或是把gmtime()手动增加了8小时(gmtime()受config.php文件中的$timezone定义的影响,如下三图),导致页面显示时间早了8小时。3、 页面显示正常,但config.php文件中定义的是RPC时区,获取时也用的gmtime,这时会有隐患,如果有别的页面按ecshop的原有规则,正确调用了local_date()函数,反而时间早了8小时。总结:1、 安装过程中选择UTC时区,且不要随意更改config.php文件中的$timezone2、 存储数据库时,统一存UTC时间戳(例如用gmtime()获取)3、 前台显示时要用local_date()转换成当地时间4、 编写相关

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论