问题描述
我使用php的 date_default_timezone_set()
,并根据用户表中用户的时区
字段进行设置。所以我可以轻松地向用户显示日期/时间,并从中获取日期/时间。
I use php's date_default_timezone_set()
and set it according to user's timezone
field in the the user table. So with ease I can show date/time to users and get date/time from them.
但是,为了在数据库中存储日期相关的值,我必须使用标准的GMT时区。
But for storing date related values in database, I have to use the standard GMT timezone.
问题:什么是最佳或可能的标准切换到/从user_timezone和GMT?
The question: What is the best or maybe the standard way for switching to/from user_timezone and GMT?
当我想在数据库中插入或更新字段时,建议我按照这些步骤?
Do you suggest me to follow these steps when I want to insert or update a field in database?
- 使用
date_default_timezone_set('GMT')更改时区;
- 使用
$ insertionttimestap = time();
或$ insertionttimestamp
= mktime(); - 使用以下方式将时区恢复为用户默认值:
date_default_timezone_set($ this-> session-> userdata('timezone'));
- Change the timezone using
date_default_timezone_set('GMT');
- Get the time using
$inserttimestap = time();
or$inserttimestamp= mktime();
- Change the timezone back to user default using:
date_default_timezone_set($this->session->userdata('timezone'));
推荐答案
绝对不需要使用 date_default_timezone_set 'GMT')
因为转换为G MT,有一组特殊功能,函数名以'gm'开头:
There is absolutely no need to use date_default_timezone_set('GMT')
because for converting to GMT, there is a special set of functions that the function names begin with 'gm':
-
gmmktime()
在GMT时区获取时间戳。 -
gmdate()
给出GMT日期格式。 li>
-
还有
gmstrftime()
gmmktime()
gets a timestamp in GMT timezone.gmdate()
that gives a GMT date format.There is also
gmstrftime()
PHP manual
此外,值得注意的是, time
仅在GMT返回当前时间戳
Furthermore it's notable that the time()
returns current timestamp only in GMT
这篇关于从/转换到user_timezone和gmt的标准方式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!