src/Queue/MongoQueue.php
protected function parseOptionsToDateTime($options)
    {
        $time      = microtime(true);
        $micro     = sprintf("%06d", ($time - floor($time)) * 1000000);
        $this->now = new \DateTime(date('Y-m-d H:i:s.' . $micro, $time), new \DateTimeZone(date_default_timezone_get()));
        $scheduled = isset($options['scheduled']) ? Utils::createDateTime($options['scheduled']) : clone ($this->now);

        if (isset($options['delay'])) {
            $delay = Utils::createDateInterval($options['delay']);
            $scheduled->add($delay);
        }

        return $scheduled;
    }
protected function parseOptionsToDateTime($options)
    {
        $time      = microtime(true);
        $micro     = sprintf("%06d", ($time - floor($time)) * 1000000);
        $this->now = new \DateTime(date('Y-m-d H:i:s.' . $micro, $time), new \DateTimeZone(date_default_timezone_get()));
        $scheduled = isset($options['scheduled']) ? Utils::createDateTime($options['scheduled']) : clone ($this->now);

        if (isset($options['delay'])) {
            $delay = Utils::createDateInterval($options['delay']);
            $scheduled->add($delay);
        }

        return $scheduled;
    }
Parses options to a datetime object

valid options keys:

scheduled: the time when the job will be scheduled to run next
- numeric string or integer - interpreted as a timestamp
- string parserable by the DateTime object
- DateTime instance
delay: the delay before a job become available to be popped (defaults to 0 - no delay -)
- numeric string or integer - interpreted as seconds
- string parserable (ISO 8601 duration) by DateTimeInterval::__construct
- string parserable (relative parts) by DateTimeInterval::createFromDateString
- DateTimeInterval instance

@see http://en.wikipedia.org/wiki/Iso8601#Durations
@see http://www.php.net/manual/en/datetime.formats.relative.php

@codeCoverageIgnore
@param $options array
@return \DateTime