PHP的时区和日期

时间:2019-07-17 16:33:03

标签: php datetime

我有一种方法可以返回一周中各天的当前日期:

        $dates = array_map(function ($value) {
            return (new \DateTime($value))->format('Y-m-d');
        }, ['tuesday', 'friday']);

这将输出星期二和星期五的当前日期:

0 => 2000-01-01 1 => 2000-01-04

问题是,我需要从给定时区的角度获取日期。即某人在星期二1月11日晚上坐在纽约,其当前日期为:

0 => 2000-01-04 1 => 2000-01-08

即使第一天对他们仍然是有效日期。

为解决此问题,我重新编写了如下方法:

        $days = array_map(function ($value) use ($config) {
            return (new \DateTime($value, new \DateTimeZone($config['user-timezone'])))->format('Y-m-d');
        }, ['tuesday', 'friday']);

由于我不是坐在纽约,所以我实际上没有对此进行测试。我对解决此问题的其他解决方案感兴趣。

0 个答案:

没有答案