首页 » PHP教程 » php时光加减技巧_CarbonPHP中日期 时间处理拿到这个扩展包就够了

php时光加减技巧_CarbonPHP中日期 时间处理拿到这个扩展包就够了

访客 2024-10-25 0

扫一扫用手机浏览

文章目录 [+]

它供应了一些很好的功能来处理 PHP 中的日期,特殊是诸如:

处理时区轻松获取当前韶光将 datetime 转换成可读的内容将英语短语解析成 datetime (first day of January 2016)日期的加减 (+ 2 weeks, -6 months)处理日期的语义方法

php时光加减技巧_CarbonPHP中日期  时间处理拿到这个扩展包就够了

说到做到,750粉丝福利安排PHP进阶资料,免费获取

所有的这些都带来了一个非常有用的包,使得这些在 PHP 中处理韶光非常随意马虎。

php时光加减技巧_CarbonPHP中日期  时间处理拿到这个扩展包就够了
(图片来自网络侵删)
设置

为了利用 Carbon ,你须要从 Carbon 命名空间中导入 Carbon 。
幸运的是,在 Laravel 中已经包括了 Carbon ,以是不须要和 Composer 一起添加。
当我们须要利用 Carbon 的时候,我们可以这样导入它:

<?php use Carbon\Carbon;

在导入之后,让我们看看我们可以用这个很棒的包做一些很酷的事情。

获取特定的日期/韶光

// 获取当前韶光 - 2015-12-19 10:10:54$current = Carbon::now();$current = new Carbon();// 获取本日 - 2015-12-19 00:00:00$today = Carbon::today();// 获取昨天 - 2015-12-18 00:00:00$yesterday = Carbon::yesterday();// 获取来日诰日 - 2015-12-20 00:00:00$tomorrow = Carbon::tomorrow();// 解析特定字符串 - 2016-01-01 00:00:00$newYear = new Carbon('first day of January 2016');// 设定一个特定的时区 - 2016-01-01 00:00:00$newYearPST = new Carbon('first day of January 2016', 'America\Pacific');创造具有更细粒度掌握的日期

除了快速定义日期/韶光方法之外,Carbon 也可以让我们从特天命量的参数中创建韶光。

Carbon::createFromDate($year, $month, $day, $tz);Carbon::createFromTime($hour, $minute, $second, $tz);Carbon::create($year, $month, $day, $hour, $minute, $second, $tz);

当你以一种常日不被 Carbon 识别的格式得到某种日期或韶光时,这些是非常有用的。
如果你为任何一个参数通报 null 值,则它默认会利用当前日期/韶光通报 。

操作日期/韶光

抓取日期/韶光并不是你在处理日期时唯一要做的事情。
你常常须要操作日期或韶光。

例如,当为一个用户创建一个试用期时,你将希望试用期在一定韶光后过期。
假设我们有 30 天的试用期。
我们可以用 add 和 subtract 很随意马虎的打算出韶光。

在这段试用期内,我们会:

// 获取当前韶光$current = Carbon::now();// 添加 30 天到当前韶光$trialExpires = $current->addDays(30);

从 Carbon 文档 中,我们可以找到一些其他的 add() 和 sub() 方法:

$dt = Carbon::create(2012, 1, 31, 0);echo $dt->toDateTimeString(); // 2012-01-31 00:00:00echo $dt->addYears(5); // 2017-01-31 00:00:00echo $dt->addYear(); // 2018-01-31 00:00:00echo $dt->subYear(); // 2017-01-31 00:00:00echo $dt->subYears(5); // 2012-01-31 00:00:00echo $dt->addMonths(60); // 2017-01-31 00:00:00echo $dt->addMonth(); // 2017-03-03 00:00:00 equivalent of $dt->month($dt->month + 1); so it wrapsecho $dt->subMonth(); // 2017-02-03 00:00:00echo $dt->subMonths(60); // 2012-02-03 00:00:00echo $dt->addDays(29); // 2012-03-03 00:00:00echo $dt->addDay(); // 2012-03-04 00:00:00echo $dt->subDay(); // 2012-03-03 00:00:00echo $dt->subDays(29); // 2012-02-03 00:00:00echo $dt->addWeekdays(4); // 2012-02-09 00:00:00echo $dt->addWeekday(); // 2012-02-10 00:00:00echo $dt->subWeekday(); // 2012-02-09 00:00:00echo $dt->subWeekdays(4); // 2012-02-03 00:00:00echo $dt->addWeeks(3); // 2012-02-24 00:00:00echo $dt->addWeek(); // 2012-03-02 00:00:00echo $dt->subWeek(); // 2012-02-24 00:00:00echo $dt->subWeeks(3); // 2012-02-03 00:00:00echo $dt->addHours(24); // 2012-02-04 00:00:00echo $dt->addHour(); // 2012-02-04 01:00:00echo $dt->subHour(); // 2012-02-04 00:00:00echo $dt->subHours(24); // 2012-02-03 00:00:00echo $dt->addMinutes(61); // 2012-02-03 01:01:00echo $dt->addMinute(); // 2012-02-03 01:02:00echo $dt->subMinute(); // 2012-02-03 01:01:00echo $dt->subMinutes(61); // 2012-02-03 00:00:00echo $dt->addSeconds(61); // 2012-02-03 00:01:01echo $dt->addSecond(); // 2012-02-03 00:01:02echo $dt->subSecond(); // 2012-02-03 00:01:01echo $dt->subSeconds(61); // 2012-02-03 00:00:00Getters and 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->year(1975)->month(5)->day(21)->hour(22)->minute(32)->second(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(); // Dec 19, 2015echo $dt->toTimeString(); // 10:10:16echo $dt->toDateTimeString(); // 2015-12-19 10:10:16echo $dt->toDayDateTimeString(); // Sat, Dec 19, 2015 10:10 AM// ……当然 format() 也可以这样用echo $dt->format('l jS \\of F Y h:i:s A'); // Saturday 19th of December 2015 10:10:16 AM相对韶光

通过 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 中更随意马虎的利用日期 / 韶光并加快开拓效率!

标签:

相关文章

Java代码虚拟化保护技术与应用前景

软件应用的需求日益增长,软件开发过程中对代码的保护成为了一个重要议题。Java作为一种广泛应用于企业级应用的编程语言,其代码虚拟化...

PHP教程 2025-03-02 阅读1 评论0

CAD插件错误代码与应对步骤

CAD(计算机辅助设计)软件在工程设计领域得到了广泛应用。CAD插件作为提升设计效率的重要工具,在提高设计师工作效率的也带来了一定...

PHP教程 2025-03-02 阅读1 评论0

上古卷轴代码规则大全游戏背后的编程奥秘

《上古卷轴》作为一款深受玩家喜爱的角色扮演游戏,自问世以来便以其丰富的世界观、独特的游戏体验和深厚的文化底蕴吸引了无数玩家。在这款...

PHP教程 2025-03-02 阅读1 评论0