基于用户TimeZone的Laravel队列作业

时间:2018-08-06 18:40:30

标签: laravel-5

我有用户时区和工作时间。我正在尝试在用户的工作时间安排工作。但这似乎无法正常工作。请检查我做错了什么。

一个示例值是:

Timezone is 'America/New_York'
User Starts at  "10 am"
User Stops at  "6 pm"   

我正在检查是否是用户的工作时间,还是不尝试获取秒数,然后在这几秒后安排jon。

   date_default_timezone_set($users->timezone);
   $date = date('m/d/Y h:i:s a', time());
    if (strtotime($date) > strtotime($users->start) && strtotime($date) < strtotime($users->stop)) {
        goto processnow;
    }
    else{

        $tomorrow = new DateTime('tomorrow');
        $newdate =  date('Y-m-d H:i',strtotime('+'. $users->start .' hour',strtotime($tomorrow->format('Y-m-d H:i:s'))));
        $dtnow = new DateTime();
        $ndate =  date('Y-m-d H:i',strtotime($dtnow->format('Y-m-d H:i:s')));
        $sec = strtotime($newdate) - strtotime($ndate);

        ProcessCoupons::dispatch($this->id) 
            ->delay(now()->addSeconds($sec));   
    }

0 个答案:

没有答案