Carbon-PHP中的日期/时间处理,您只需要这个扩展包任务。我们必须处理strtotime、格式化问题、大量计算等。这个名为Carbon的漂亮包有助于在PHP中处理日期/时间更容易、更语义化,使我们的代码更易于阅读和维护。CarbonCarbon是由BrianNesbit开发的一个包,它扩展了PHP自己的DateTime类。它为在PHP中处理日期提供了一些不错的功能,特别是:处理时区轻松获取当前时间将日期时间转换为可读的内容将英语短语解析为日期时间(2016年1月的第一天)添加和减去日期(+2周,-6个月)日期的语义方法所有这些汇集了一个非常有用的包,使在PHP中处理时间变得非常容易。设置为了使用Carbon,您需要从Carbon命名空间导入Carbon。幸运的是,Carbon已经包含在Laravel中,因此无需将其与Composer一起添加。当我们需要使用Carbon时,我们可以这样导入:addDays(30);从Carbon文档中,我们可以找到其他一些add()和sub()方法:$dt=Carbon::create(2012,1,31,0);echo$dt->toDateTimeString();//2012-01-3100:00:00echo$dt->addYears(5);//2017-01-3100:00:00echo$dt->addYear();//2018-01-3100:00:00echo$dt->subYear();//2017-01-3100:00:00echo$dt->subYears(5);//2012-01-3100:00:00echo$dt->addMonths(60);//2017-01-3100:00:00echo$dt->addMonth();//2017-03-0300:00:00相当于$dt->month($dt->month+1);所以它wrapsecho$dt->subMonth();//2017-02-0300:00:00echo$dt->subMonths(60);//2012-02-0300:00:00echo$dt->addDays(29);//2012-03-0300:00:00echo$dt->addDay();//2012-03-0400:00:00echo$dt->subDay();//2012-03-0300:00:00echo$dt->subDays(29);//2012-02-0300:00:00echo$dt->addWeekdays(4);//2012-02-0900:00:00echo$dt->addWeekday();//2012-02-1000:00:00echo$dt->subWeekday();//2012-02-0900:00:00echo$dt->subWeekdays(4);//2012-02-0300:00:00echo$dt->addWeeks(3);//2012-02-2400:00:00echo$dt->addWeek();//2012-03-0200:00:00echo$dt->subWeek();//2012-02-2400:00:00echo$dt->subWeeks(3);//2012-02-0300:00:00echo$dt->addHours(24);//2012-02-0400:00:00echo$dt->addHour();//2012-02-0401:00:00echo$dt->subHour();//2012-02-0400:00:00echo$dt->subHours(24);//2012-02-0300:00:00echo$dt->addMinutes(61);//2012-02-0301:01:00echo$dt->addMinute();//2012-02-0301:02:00echo$dt->subMinute();//2012-02-0301:01:00echo$dt->subMinutes(61);//2012-02-0300:00:00echo$dt->addSeconds(61);//2012-02-0300:01:01echo$dt->addSecond();//2012-02-0300:01:02echo$dt->subSecond();//2012-02-0300:01:01echo$dt->subSeconds(61);//2012-02-0300:00:00Getters和Setters另一种快速操作或读取时间的方法是使用可用的getters和serrers$dt=Carbon::now();//设置一些参数$dt->year=2015;$dt->month=04;$dt->day=21;$dt->hour=22;$dt->minute=32;$dt->second=5;//获取一些参数var_dump($dt->year);var_dump($dt->month);var_dump($dt->day);var_dump($dt->hour);var_dump($dt->second);var_dump($dt->dayOfWeek);var_dump($dt->dayOfYear);var_dump($dt->weekOfMonth);var_dump($dt->daysInMonth);甚至可以将一些setter串在一起。$dt=Carbon::now();$dt->年(1975)->月(5)->日(21)->时(22)->分(32)->秒(5)->toDateTimeString();$dt->setDate(1975,5,21)->setTime(22,32,5)->toDateTimeString();$dt->setDateTime(1975,5,21,22,32,5)->toDateTimeString();格式化在上面的示例中,您可能已经注意到->toDateTimeString()方法。我们可以很容易地为我们的目的格式化它。在这种情况下,我们得到了一个日期时间字符串。$dt=Carbon::now();echo$dt->toDateString();//2015-12-19echo$dt->toFormattedDateString();//2015年12月19日echo$dt->toTimeString();//10:10:16echo$dt->toDateTimeString();//2015-12-1910:10:16echo$dt->toDayDateTimeString();//Sat,Dec19,201510:10AM//...当然也可以使用format()echo$dt->format('ljS\\ofFYh:i:sA');//Saturday19thofDecember201510:10:16AM相对时间通过diff()方法可以方便的显示相对时间。例如,我们有一篇博文,我们想显示它是三小时前发布的。可以使用这些方法。查找时差这些方法用于查找两个时间之间的时差。$current=Carbon::now();$dt=Carbon::now();$dt=$dt->subHours(6);echo$dt->diffInHours($current);//-6echo$current->diffInHours($dt);//6$future=$current->addMonth();$past=$current->subMonths(2);echo$current->diffInDays($future);//31echo$current->diffInDays($past);//-62显示人类可读的时间差异在过去的几年中,显示相对时间变得越来越流行。它经常出现在Twitter和Facebook等社交网络上。例如,将时间显示为3小时前比显示上午8点12分更易读。这些方法用于计算时差并将其转换为人类可读的格式。以下是表示时差的四种方式:将过去时间与现在进行比较:1小时前5个月前将未来时间与现在进行比较:1小时后5个月前将过去时间与另一个时间进行比较比较时间:1小时前5小时前将未来时间与另一个时间进行比较:1小时后5小时后$dt=Carbon::now();$past=$dt->subMonth();$future=$dt->addMonth();echo$dt->subDays(10)->diffForHumans();//10天前echo$dt->diffForHumans($past);//1个月前echo$dt->diffForHumans($future);//总结1个月前Carbon可以做的远不止于此。请务必查看官方Carbon文档。希望这可以帮助您更轻松地使用PHP中的日期/时间并加快您的开发速度!文章转自:https://learnku.com/php/t/26998更多文章:https://learnku.com/laravel/c...
