当前位置:网站首页>laravel Carbon 时间处理类使用
laravel Carbon 时间处理类使用
2022-07-01 00:48:00 【知其黑、受其白】
1、获取当前时间
//可传递一个有效的时区作为参数
echo Carbon::now();//2019-08-17 09:27:49
echo Carbon::now('America/Los_Angeles');//2019-08-17 02:27:49
2、获取昨今明天
//可传递一个有效的时区作为参数
echo Carbon::today();//2019-08-17 00:00:00
echo Carbon::tomorrow('America/Los_Angeles');//2019-08-18 00:00:00
echo Carbon::yesterday();//2019-08-16 00:00:00
3、转字符串类型
echo Carbon::today()->toDateTimeString();
echo Carbon::yesterday()->toDateTimeString();
echo Carbon::tomorrow()->toDateTimeString();
4、日期解析
echo Carbon::parse('2016-10-15')->toDateTimeString(); //2016-10-15 00:00:00
echo Carbon::parse('2016-10-15')->toDateTimeString(); //2016-10-15 00:00:00
echo Carbon::parse('2016-10-15 00:10:25')->toDateTimeString(); //2016-10-15 00:10:25
echo Carbon::parse('today')->toDateTimeString(); //2016-10-15 00:00:00
echo Carbon::parse('yesterday')->toDateTimeString(); //2016-10-14 00:00:00
echo Carbon::parse('tomorrow')->toDateTimeString(); //2016-10-16 00:00:00
echo Carbon::parse('2 days ago')->toDateTimeString(); //2016-10-13 20:49:53
echo Carbon::parse('+3 days')->toDateTimeString(); //2016-10-18 20:49:53
echo Carbon::parse('+2 weeks')->toDateTimeString(); //2016-10-29 20:49:53
echo Carbon::parse('+4 months')->toDateTimeString(); //2017-02-15 20:49:53
echo Carbon::parse('-1 year')->toDateTimeString(); //2015-10-15 20:49:53
echo Carbon::parse('next wednesday')->toDateTimeString(); //2016-10-19 00:00:00
echo Carbon::parse('last friday')->toDateTimeString(); //2016-10-14 00:00:00
5、构造日期
$year = '2015';
$month = '04';
$day = '12';
echo Carbon::createFromDate($year, $month, $day); //2015-04-12 20:55:59
$hour = '02';
$minute = '15':
$second = '30';
echo Carbon::create($year, $month, $day, $hour, $minute, $second); //2015-04-12 02:15:30
echo Carbon::createFromDate(null, 12, 25); // 年默认为当前年份
6、日期运算
//add-加 sub-减
echo Carbon::now()->addDays(25); //2016-11-09 14:00:01
echo Carbon::now()->addWeeks(3); //2016-11-05 14:00:01
echo Carbon::now()->addHours(25); //2016-10-16 15:00:01
echo Carbon::now()->subHours(2); //2016-10-15 12:00:01
echo Carbon::now()->addHours(2)->addMinutes(12); //2016-10-15 16:12:01
echo Carbon::now()->modify('+15 days'); //2016-10-30 14:00:01
echo Carbon::now()->modify('-2 days'); //2016-10-13 14:00:01
7、日期比较
/* min –返回最小日期。 max – 返回最大日期。 eq – 判断两个日期是否相等。 gt – 判断第一个日期是否比第二个日期大。 lt – 判断第一个日期是否比第二个日期小。 gte – 判断第一个日期是否大于等于第二个日期。 lte – 判断第一个日期是否小于等于第二个日期。 */
echo Carbon::now()->tzName; // America/Toronto
$first = Carbon::create(2012, 9, 5, 23, 26, 11);
$second = Carbon::create(2012, 9, 5, 20, 26, 11, 'America/Vancouver');
echo $first->toDateTimeString(); // 2012-09-05 23:26:11
echo $first->tzName; // America/Toronto
echo $second->toDateTimeString(); // 2012-09-05 20:26:11
echo $second->tzName; // America/Vancouver
var_dump($first->eq($second)); // bool(true)
var_dump($first->ne($second)); // bool(false)
var_dump($first->gt($second)); // bool(false)
var_dump($first->gte($second)); // bool(true)
var_dump($first->lt($second)); // bool(false)
var_dump($first->lte($second)); // bool(true)
$first->setDateTime(2012, 1, 1, 0, 0, 0);
$second->setDateTime(2012, 1, 1, 0, 0, 0); // Remember tz is 'America/Vancouver'
var_dump($first->eq($second)); // bool(false)
var_dump($first->ne($second)); // bool(true)
var_dump($first->gt($second)); // bool(false)
var_dump($first->gte($second)); // bool(false)
var_dump($first->lt($second)); // bool(true)
var_dump($first->lte($second)); // bool(true)
8、判断一个日期是否介于两个日期之间
$first = Carbon::create(2012, 9, 5, 1);
$second = Carbon::create(2012, 9, 5, 5);
var_dump(Carbon::create(2012, 9, 5, 3)->between($first, $second)); // bool(true)
var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second)); // bool(true)
var_dump(Carbon::create(2012, 9, 5, 5)->between($first, $second, false)); // bool(false)
9、辅助方法
$dt = Carbon::now();
$dt->isWeekday();
$dt->isWeekend();
$dt->isYesterday();
$dt->isToday();
$dt->isTomorrow();
$dt->isFuture();
$dt->isPast();
$dt->isLeapYear();
$dt->isSameDay(Carbon::now());
$born = Carbon::createFromDate(1987, 4, 23);
$noCake = Carbon::createFromDate(2014, 9, 26);
$yesCake = Carbon::createFromDate(2014, 4, 23);
$overTheHill = Carbon::now()->subYears(50);
var_dump($born->isBirthday($noCake)); // bool(false)
var_dump($born->isBirthday($yesCake)); // bool(true)
var_dump($overTheHill->isBirthday()); // bool(true) -> default compare it to today!
10、将时间转为文字描述
echo Carbon::now()->subDays(5)->diffForHumans(); // 5天前
echo Carbon::now()->diffForHumans(Carbon::now()->subYear()); // 1年后
$dt = Carbon::createFromDate(2011, 8, 1);
echo $dt->diffForHumans($dt->copy()->addMonth()); // 1月前
echo $dt->diffForHumans($dt->copy()->subMonth()); // 11月后
echo Carbon::now()->addSeconds(5)->diffForHumans(); // 5秒距现在
echo Carbon::now()->subDays(24)->diffForHumans(); // 3周前
//可以把第二个参数设置为 true 来删除'前'、'距现在'等修饰语
echo Carbon::now()->subDays(24)->diffForHumans(null, true); // 3周
边栏推荐
- About vctk datasets
- Parity linked list [two general directions of linked list operation]
- [leetcode] sum of two numbers [1]
- 短视频平台开发,依靠DrawerLayout实现侧滑菜单效果
- Pre training / transfer learning of models
- [Office PDF] PDF merging and splitting will free us from the functional limitations of paid software, OK
- 元宇宙为 VR/AR 带来的新机会
- Split the linked list [take next first and then cut the linked list to prevent chain breakage]
- Strictmode analysis registration strictmode principle (4)
- 系统设置大页
猜你喜欢

Call the classic architecture and build the model based on the classic

Gin configuration file

视频教程 | 长安链推出系列视频教程合集(入门)

流批一体在京东的探索与实践

6月第4周榜单丨飞瓜数据UP主成长排行榜(哔哩哔哩平台)发布!

The liquor and tourism sector recovers, and Yaduo continues to dream of listing. How far is it from "the first share of the new accommodation economy"?

Log logrus third party library usage

3dsmax插件开发遍历节点对象和Object获取及INode变换矩阵说明

基础知识之一——STA基础概述

迪赛智慧数——其他图表(平行坐标图):2021年应届专业就业情况
随机推荐
Split the linked list [take next first and then cut the linked list to prevent chain breakage]
[Deepin] 常用集合
系统设置大页
Opencv basic operation 2 realizes label2rgb and converts gray-scale images into color images
Lecun, a Turing Award winner, pointed out that the future of AI lies in self-learning, and the company has embarked on the journey
为什么要搭建个人博客
New opportunities for vr/ar brought by metauniverse
None of the following candidates is applicable because of a receiver type mismatch
Applet Custom Grid
Install redis database and download redis Desktop Manager in win11
[Qt5 basic \u 1] starting from 0, Mr. Detian will study with you - Introduction to the window
Complete software development process
短信在企业中的应用有哪些?
[问题已处理]-nvidia-smi命令获取不到自身容器的GPU进程和外部的GPU进程号
3dsmax插件开发遍历节点对象和Object获取及INode变换矩阵说明
[Qt5 basics] random number display
物业怎么发短信通知给业主?
【栈】921. Minimum Add to Make Parentheses Valid
Pytorch programming knowledge (2)
Gin configuration file