用php从时区计算时间
海用php从时区计算时间,php,mysql,datetime,Php,Mysql,Datetime,海 我有一个系统,员工档案中有不同的时区。我想根据他们指定的时区显示日期。GMT时区值将放置在数据库中。 你们能帮我检查一下PHP的时区设置功能吗,包括。除了Dav的答案之外,我建议将所有时间数据存储在“timestamp”mysql数据类型中,因为它会自动处理时区,比如说,您的服务器位于美国,并使用本地美国GMT-7将日期存储在数据库中 因此,您发送本地偏移量-7和员工所在国家的偏移量,比如说在欧洲的某个地方+2 所以基本上你只需要知道什么是-7-2和它的9小时偏移量,所以你在数据库中存储的每
我有一个系统,员工档案中有不同的时区。我想根据他们指定的时区显示日期。GMT时区值将放置在数据库中。
你们能帮我检查一下PHP的时区设置功能吗,包括。除了Dav的答案之外,我建议将所有时间数据存储在“timestamp”mysql数据类型中,因为它会自动处理时区,比如说,您的服务器位于美国,并使用本地美国GMT-7将日期存储在数据库中 因此,您发送本地偏移量-7和员工所在国家的偏移量,比如说在欧洲的某个地方+2 所以基本上你只需要知道什么是-7-2和它的9小时偏移量,所以你在数据库中存储的每个日期必须加上9小时来代表欧洲的时间 这将计算偏移量:
fnGetOffset($source_gmt_offset ,$fltGmtOffset)
{
$intGmtOffest = $source_gmt_offset - $fltGmtOffset;
if($intGmtOffest <> 0)
{
return $intGmtOffest;
}
}
fnGetOffset($source\u gmt\u offset,$fltGmtOffset)
{
$intGmtOffest=$source\U gmt\U offset-$fltGmtOffset;
if($intGmtOffest 0)
{
返回$intGmtOffest;
}
}
计算偏移量后,只需从数据库中获取日期并将偏移量添加到数据库中
就像这样:
$intUnixTimeStamp+=$Intgmtofest*60*60代码>
因此,这是使用PHP的正确方法
如果您想根据用户选择的时间查询服务器,则需要返回-9。比如说:
贵公司当地时间是美国格林尼治标准时间(-6)的某个地方,我们在荷兰有一名员工,格林尼治标准时间(+2)
所以您要做的是:
将事件日期保存在公司当地时间的数据库中
现在,当您查询数据库中的可用日期时,首先检查员工所在国家以获取其偏移量
- 如果是Holland员工的,您计算它的+2,那么您知道数据库中的所有日期都存储为本地公司时间gmt-8。
所以它实际上是gmt=-8的-6-+2偏移量
现在,如果我们想从服务器时间到荷兰的员工时间,我们只需在时间上加上8小时的偏移量
最好是将其应用于sql查询,如下所示:
$symb= "+";
$intGmtInterval= 8;
DATE_FORMAT(CONVERT_TZ(my_event,'+0:00','$symb$intGmtInterval:00'),'%W')
因此,这实际上会将8小时偏移量添加到主查询中的任何日期中。“GMT时区值放置在数据库中”-以何种格式/字段类型?谢谢alex,你能给我一些示例日期吗?非常欢迎,我用mysql代码示例发布了另一个回复。