PHP Carbon耗时分钟数&;转换为天


PHP Carbon take number of minutes & convert to days

我正在尝试使用Carbon将分钟数转换为天数。

$minutes = 1400;

我想做下面这样的事情(当然,这不起作用):

Carbon->minutes($minutes)->days();

我找不到这样的例子。谢谢你的帮助。

没有经过测试,但快速查看文档表明,它可能更多地针对DateTime对象,而不是时间差异,因此您可以这样做:

$now  = Carbon::now();
$days = $now->diffInDays($now->copy()->addMinutes($minutes));

也许是CarbonInterval::minutes($minutes)->cascade();

将你的价值级联并为人类格式化。

如果要将秒转换为Jira样式的1y 1m 1w 1h 1m 1s:

class Translator implements TranslatorInterface, TranslatorBagInterface
{
    protected const TRANS = [
        'year'   => 'y',
        'month'  => 'm',
        'week'   => 'w',
        'day'    => 'd',
        'hour'   => 'h',
        'minute' => 'm',
        'second' => 's',
    ];
    public function trans(string $id, array $parameters = [], string $domain = null, string $locale = null)
    {
        return $parameters[':count'].self::TRANS[$id];
    }
    public function getCatalogue(string $locale = null)
    {
        return new 'Symfony'Component'Translation'MessageCatalogue('pl_PL');
    }
}
$second = 1;
$minute = 60 * $second;
$hours  = 60 * $minute;
$day    = 24 * $hours;
$week   = 7  * $day;
$month  = 4  * $week;
$year   = 12 * $month;
$sum      = $second + $minute + $hours + $day + $week + $month + $year;
$interval = CarbonInterval::seconds($sum)->cascade();
$interval->setLocalTranslator(new Translator());
echo $interval->forHumans(); // 1y 1m 1w 1h 1m 1s

如果您想转换为年、月、周、天、小时、分钟、秒、微秒

use Carbon'CarbonInterval;
echo CarbonInterval::minutes(2212)->cascade()->forHumans();
//output  = 1 day 12 hours 52 minutes