我将为来自不同时区的用户设置和管理一些cron作业。设置的一种可能方式是在一周中的特定日期特定时间运行任务,例如:
On Sat,Sun at 22:00 AM
对于每个用户,我都有他的时区(例如'America/New_York'
,'Europe/Berlin'
等)。那么将星期几和时间转换为其他时区(服务器的时区)以设置cron作业的最佳方法是什么。
$date = new DateTime("this saturday 22:00", new DateTimeZone('America/New_York'));
$beforeConversion = [
"dayOfWeek" => $date->format('D'), // Sat
"time" => $date->format('H:i') // 22:00
];
$date->setTimezone(new DateTimeZone('UTC'));
$beforeConversion = [
"dayOfWeek" => $date->format('D'), // Sun
"time" => $date->format('H:i') // 02:00
];
我想到了上面提供的代码。这是用PHP进行此类操作的最佳方式吗?