关于webman时区的问题

alafafa

我希望所有用户提交的时间最终都转换成统一的unix时间戳存入数据库,在用户显示页面再根据用户资料里设置的时间进行转换,所以我把php.ini时区设置的是标准时区UTC/GMT
这在使用time(),microtime()函数自动生成时间时是没有问题的
但是有时候会使用mktime()或strtotime()等函数来处理用户提交的函数,用户用的是北京时间提交来的'2022/08/31'在录入数据库的时候用strtotime()怎样转化成对应用户当地时间的标注unix时间戳?
如果用date_default_timezone_set()临时修改php的系统时区,那么用户a和用户b的个人设置的时区是不一样的,会不会产生冲突,或者说用户a刚才设置的还是北京时间后来他又改成了伦敦时间,怎样保证无论用户怎么修改时区,他当时提交的时间字符串转换成标准unix时间戳之后就是他当时想要的时间,并且多用户之间设置不同的时区或同一用户不定时更改时区设置而导致系统冲突?
如果在中间件里的一开始使用date_default_timezone_set(),那么是只针对与这一用户的这一次访问有效呢,还是针对所有的访问用户有效,用户在断开这一页面后,之前设置的时区还会对后续的访问产生影响吗?

1931 2 0
2个回答

cbasil

在config文件夹中app.php有时区的配置


use support\Request;

return [
    'debug' => true,
    'default_timezone' => 'Asia/Shanghai',
    'request_class' => Request::class,
    'public_path' => base_path() . DIRECTORY_SEPARATOR . 'public',
    'runtime_path' => base_path(false) . DIRECTORY_SEPARATOR . 'runtime',
    'controller_suffix' => 'controller',
    'url' => 'http://localhost'
];
  • 暂无评论
nitron

时间戳本来就是统一的啊....
后端处理时间用Carbon,前端用moment.js 时区从来不是什么问题

  • 暂无评论
年代过于久远,无法发表回答
×
🔝