Carbon常用方法_carbon 获取某个时间的第二天-程序员宅基地

技术标签: laravel  php  

use Carbon\Carbon; // Carbon 类在 Carbon 命名空间中声明

// 获取当前时间
echo Carbon::now(); // 2017-04-07 16:32:28

// 今天
echo Carbon::today(); // 2017-04-07 00:00:00
// 明天
echo Carbon::tomorrow(); // 2017-04-08 00:00:00
// 昨天
echo Carbon::yesterday(); // 2017-04-06 00:00:00

// 获取前一天的开始时间
echo Carbon::now()->yesterday()->startOfDay(); // 2017-04-06 00:00:00
// 获取前一天的结束时间
echo Carbon::now()->yesterday()->endOfDay(); // 2017-04-06 23:59:59

//上一周开始时间 (星期一)
echo Carbon::now()->previous()->startOfWeek(); // 2017-03-27 00:00:00
// 这周周一
echo Carbon::now()->startOfWeek(); // 2017-04-03 00:00:00
//上一周结束时间 (星期天)
echo Carbon::now()->previous()->endOfWeek(); // 2017-04-02 23:59:59
// 这周周天
echo Carbon::now()->endOfWeek(); // 2017-04-09 23:59:59

//获取上一月的开始时间
echo Carbon::now()->subMonth(1)->startOfMonth(); // 2017-03-01 00:00:00
// 获取上一月的结束时间
echo Carbon::now()->subMonth(1)->endOfMonth(); // 2017-03-31 23:59:59
// 这个月的第一天开始时间
echo Carbon::now()->startOfMonth(); // 2017-04-01 00:00:00
// 这个月的最后一天结束时间
echo Carbon::now()->endOfMonth(); // 2017-04-30 23:59:59

// 获取上一年的开始时间
echo Carbon::now()->subYear(1)->startOfYear(); // 2016-01-01 00:00:00
// 今年开始时间
echo Carbon::now()->startOfYear(); // 2017-01-01 00:00:00
echo Carbon::now()->lastOfYear()->startOfYear(); // 2017-01-01 00:00:00
// 获取上一年的结束时间
echo Carbon::now()->subYear(1)->endOfYear(); // 2016-12-31 23:59:59
// 今年结束时间
echo Carbon::now()->endOfYear(); // 2017-12-31 23:59:59
echo Carbon::now()->lastOfYear()->endOfYear(); // 2017-12-31 23:59:59

// 获取当前时间的固定格式
echo Carbon::now()->format('Y-m-d'); // 2017-04-07
// 几号
echo Carbon::now()->day; // 7
// 几月
echo Carbon::now()->month; // 4
// 年
echo Carbon::now()->year; // 2017
// 小时
echo Carbon::now()->hour;
// 分钟
echo Carbon::now()->minute;
// 上周的今天是星期几
echo Carbon::now()->dayOfWeek; // 5
// 今天是365天中的第几天
echo Carbon::now()->dayOfYear; // 96
// 这个月中的第几周
echo Carbon::now()->weekOfMonth; // 1
// 年中的第几周
echo Carbon::now()->weekOfYear; // 14
// 季度
echo Carbon::now()->quarter; // 2
// 几岁
echo Carbon::createFromDate(1991, 5, 21)->age; // 25
// 这个月有几天
echo Carbon::now()->daysInMonth; // 30

var_dump(isset(Carbon::now()->hour)); // bool(true)
var_dump(empty(Carbon::now()->year)); // bool(false)

echo Carbon::now()->year(2017)->month(5)->day(21)->hour(22)->minute(32)->second(5)->toDateTimeString(); // 2017-05-21 22:32:05
echo Carbon::now()->setDate(2017, 5, 21)->setTime(22, 32, 5)->toDateTimeString(); // 2017-05-21 22:32:05
echo Carbon::now()->setDateTime(2017, 5, 21, 22, 32, 5)->toDateTimeString(); // 2017-05-21 22:32:05

// 日期解析
echo new Carbon('now');
echo Carbon::parse('now'); // 2017-04-07 17:54:35
echo Carbon::parse('today'); // 2017-04-07 00:00:00
echo Carbon::parse('yesterday'); // 2017-04-06 00:00:00
echo Carbon::parse('2 days ago'); // 2017-04-05 17:56:28
echo Carbon::parse('+3 days'); // 2017-04-10 17:57:14
echo Carbon::parse('-3 days'); // 2017-04-04 17:57:37
echo Carbon::parse('+2 weeks'); // 2017-04-21 17:58:05
echo Carbon::parse('+4 months'); // 2017-08-07 17:58:32
echo Carbon::parse('-1 year'); // 2016-04-07 17:58:56
echo Carbon::parse('next wednesday'); // 2017-04-12 00:00:00
echo Carbon::parse('last friday'); // 2017-03-31 00:00:00

// 将carbon对象转换成string类型
echo Carbon::createFromTimestamp(-1)->toDateTimeString(); // 1970-01-01 07:59:59
echo Carbon::now()->toDateString(); // 2017-04-07
echo Carbon::now()->toDateTimeString(); // 2017-04-07 16:53:28
echo Carbon::now()->toFormattedDateString(); // Apr 7, 2017
echo Carbon::now()->toTimeString(); // 18:04:00
echo Carbon::now()->toDayDateTimeString(); // Fri, Apr 7, 2017 6:04 PM

// 获取当前时间的时间戳
echo Carbon::now()->timestamp; // 1491554091

echo Carbon::now()->timestamp(1491554091)->toDateTimeString(); // 2017-04-07 16:34:51

// 设置当前地区的时区
echo Carbon::now()->timezone('Asia/Shanghai'); // 2017-04-07 16:35:35

// 直接使用字符串
echo Carbon::now('Europe/London'); // 2017-04-07 09:36:41

// createFromDate()将默认的时间到现在。 createFromTime()将日期默认为今天。
echo Carbon::createFromDate(2018, 1, 1, 'Europe/London'); // 2018-01-01 16:39:40
echo Carbon::createFromFormat('Y-m-d H', '1975-05-21 22')->toDateTimeString(); // 1975-05-21 22:00:00
echo Carbon::createFromFormat('Y-m-d H', '1975-05-21 22'); // 1975-05-21 22:00:00

// create()将默认任何null参数到当前相应的值
echo Carbon::create(2000, 1, 1, 0, 0, 0); // 2000-01-01 00:00:00

// 日期比较
echo Carbon::now()->tzName; // PRC
$first = Carbon::create(2017, 4, 10, 11, 26, 30);
$second = Carbon::create(2017, 4, 10, 11, 26, 30, 'Asia/Shanghai');

echo $first->toDateTimeString(); // 2017-04-10 11:26:30
echo $first->tzName; // PRC
echo $second->toDateTimeString(); // 2017-04-10 11:26:30
echo $second->tzName; // Asia/Shanghai

// 判断两个日期是否相等
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(2017, 1, 1, 0, 0, 0);
$second->setDateTime(2017, 1, 1, 0, 0, 0);

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)

// 要判断一个日期是否介于两个日期之间,可以使用 between() 方法,第三个可选参数指定比较是否可以相等,默认为 true
$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)

$dt1 = Carbon::create(2012, 1, 1, 0, 0, 0);
$dt2 = Carbon::create(2014, 1, 30, 0, 0, 0);
// 返回最小日期
echo $dt1->min($dt2);                              // 2012-01-01 00:00:00

$dt1 = Carbon::create(2012, 1, 1, 0, 0, 0);
$dt2 = Carbon::create(2014, 1, 30, 0, 0, 0);
// 返回最大日期
echo $dt1->max($dt2);                              // 2014-01-30 00:00:00

// now is the default param
$dt1 = Carbon::create(2000, 1, 1, 0, 0, 0);
echo $dt1->max();                                  // 2017-04-10 11:51:23

$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!

// 日期操作
// add(增加), sub(减去)
$dt = Carbon::create(2017, 4, 10, 0);

echo $dt->toDateTimeString();            // 2017-04-10 00:00:00

echo $dt->addYears(5);                   // 2022-04-10 00:00:00
echo $dt->addYear();                     // 2023-04-10 00:00:00
echo $dt->subYear();                     // 2022-04-10 00:00:00
echo $dt->subYears(5);                   // 2017-04-10 00:00:00

echo $dt->addMonths(6);                  // 2017-10-10 00:00:00
echo $dt->addMonth();                    // 2017-11-10 00:00:00 equivalent of $dt->month($dt->month + 1); so it wraps
echo $dt->subMonth();                    // 2017-10-10 00:00:00
echo $dt->subMonths(6);                  // 2017-04-10 00:00:00

echo $dt->addDays(5);                    // 2017-04-15 00:00:00
echo $dt->addDay();                      // 2017-04-16 00:00:00
echo $dt->subDay();                      // 2017-04-15 00:00:00
echo $dt->subDays(5);                    // 2017-04-10 00:00:00

echo $dt->addWeekdays(4);                // 2017-04-14 00:00:00
echo $dt->addWeekday();                  // 2017-04-17 00:00:00
echo $dt->subWeekday();                  // 2017-04-14 00:00:00
echo $dt->subWeekdays(4);                // 2017-04-10 00:00:00

echo $dt->addWeeks(1);                   // 2017-04-17 00:00:00
echo $dt->addWeek();                     // 2017-04-24 00:00:00
echo $dt->subWeek();                     // 2017-04-17 00:00:00
echo $dt->subWeeks(1);                   // 2017-04-10 00:00:00

echo $dt->addHours(24);                  // 2017-04-11 00:00:00
echo $dt->addHour();                     // 2017-04-11 01:00:00
echo $dt->subHour();                     // 2017-04-11 00:00:00
echo $dt->subHours(24);                  // 2017-04-10 00:00:00

echo $dt->addMinutes(61);                // 2017-04-10 01:01:00
echo $dt->addMinute();                   // 2017-04-10 01:02:00
echo $dt->subMinute();                   // 2017-04-10 01:01:00
echo $dt->subMinutes(61);                // 2017-04-10 00:00:00

echo $dt->addSeconds(61);                // 2017-04-10 00:01:01
echo $dt->addSecond();                   // 2017-04-10 00:01:02
echo $dt->subSecond();                   // 2017-04-10 00:01:01
echo $dt->subSeconds(61);                // 2017-04-10 00:00:00

// modify 方法,参数格式为 + 或 - 跟上值及单位
echo Carbon::now()->modify('+15 days');    // 2017-04-25 12:26:02
echo Carbon::now()->modify('-2 days');     // 2017-04-08 12:26:02
echo Carbon::now()->modify('-2 day');      // 2017-04-08 12:28:31
echo Carbon::now()->modify('-2 weekday');  // 2017-04-06 00:00:00
echo Carbon::now()->modify('-2 month');    // 2017-02-10 12:29:36
echo Carbon::now()->modify('-2 year');     // 2015-04-10 12:31:13
echo Carbon::now()->modify('-2 week');     // 2017-03-27 12:31:13
echo Carbon::now()->modify('-2 hour');     // 2017-04-10 10:31:13
echo Carbon::now()->modify('-2 minute');   // 2017-04-10 12:29:13
echo Carbon::now()->modify('-2 second');   // 2017-04-10 12:31:11

echo Carbon::now()->subDays(5)->diffForHumans();               // 5天前

echo Carbon::now()->diffForHumans(Carbon::now()->subYear());   // 1年后

$dt = Carbon::createFromDate(2017, 4, 1);

echo $dt->diffForHumans($dt->copy()->addMonth());              // 1月前
echo $dt->diffForHumans($dt->copy()->subMonth());              // 1月后

echo Carbon::now()->addSeconds(5)->diffForHumans();            // 距现在5秒

echo Carbon::now()->subDays(24)->diffForHumans();              // 3周前
echo Carbon::now()->subDays(24)->diffForHumans(null, true);    // 3周
   
$dt = Carbon::now();
// 年的差异
echo $dt->diffInYears($dt->copy()->addYear(2));  // 2
echo $dt->diffInMonths();  // 0
echo $dt->diffInMinutes();  // 0

//指定返回日期的格式
$now = Carbon::now();// 2020-03-14 15:18:34
$firstDay = $now->firstOfMonth()->format('Ymd');// 20200301
$lastDay = $now->lastOfMonth()->format('Ymd');// 20200331

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/qq_41100055/article/details/129195433

智能推荐

Linux环境 docker启动redis命令_linux docker 重启 redis-程序员宅基地

文章浏览阅读1.1k次。docker启动redis命令_linux docker 重启 redis

【总结】插头DP-bzoj1210/2310/2331/2595_dp插头模型-程序员宅基地

文章浏览阅读325次。插头DP小结_dp插头模型

关于测试工作效率低的一些思考和改进方法_测试人员不足与改进-程序员宅基地

文章浏览阅读3.5k次。关于测试工作效率低的一些思考和改进方法引子  汇总统计了一下项目组近期测试项目实际工作量与基线工作量的对比,发现一个严重问题。就是工作效率特别低下。下面简单列举一下几个项目预期工作量和实际工作量以及时间耗费严重的地方、项目简要背景。  1、B版本测试。版本预期工作量15人天,实际耗费工作量在30人天。更为严重的是测试人员并没有因为测试周期延长和工作量投入加大而测试的更轻松,反而是测试期..._测试人员不足与改进

级联样式表_级联样式表| 第三部分-程序员宅基地

文章浏览阅读173次。级联样式表 CSS-难以成熟 (CSS — Difficult to maturation)Unlike software, the CSS specifications are developed by successive versions, which would allow a browser to refer to a particular version. CSS was devel..._级联样式表是哪年产生的

sql server学习笔记——批处理语句、存储过程_sql的批处理-程序员宅基地

文章浏览阅读1.7k次。目录批处理语句1、批处理语句简介示例一:示例二:存储过程一、什么是存储过程1、存储过程的简介2、存储过程包含的内容3、存储过程的优点4、存储过程的分类系统存储过程:用户定义存储过程5、常用的系统储存过程(1)一般常用的存储过程(2)xp_cmdshell二、创建存储过程1、定义存储过程的语法2、不带参数的存储过程3、带参数..._sql的批处理

css代码的定位及浮动

上次,我们解除了css的内外边距、鼠标悬停及其练习。现在我们学习css元素练习和定位。

随便推点

Flutter Widget显示隐藏_flutter判断控制是否被遮住-程序员宅基地

文章浏览阅读7.6k次。在Android中我们可以用visibility来控制控件的显示和隐藏,那在Flutter中我们怎么控制呢?其实,在Flutter中控制Widget显示和隐藏有3中方法:不过3种方法的核心思想都是根据变量的值去判断的,所以先定义一个变量:bool visible = true;变量的值可以在事件中去控制,比如: onPressed: () { setS..._flutter判断控制是否被遮住

求助生物源排放模型MEGAN_megan v2.04-程序员宅基地

文章浏览阅读673次。有没有师兄师姐有meganv2.04以上的版本小弟只有低版本的 需要高版本运行一下有偿!_megan v2.04

java/jsp/ssm网络文学网站【2024年毕设】-程序员宅基地

文章浏览阅读32次。springboot基于springboot的小型超市库存管理系统。springboot基于SpringBoot的校园失物招领系统。springboot基于springboot的残障人士社交平台。springboot基于springboot的酒店管理系统。springboot基于springboot的电商购物系统。springboot基于微信小程序的Sunmoon口红商城。springboot基于云平台的便民物流速递信息管理系统。springboot基于微服务的固定资产管理系统。

还在用PPT做组织架构图?公司都在用的架构图软件是什么?_书本里印刷的结构图是用什么软件做的-程序员宅基地

文章浏览阅读3.1k次。还在用PPT、Word和Excel画企业组织结构图吗?对于人力资源的同事来说,画组织结构图是一键非常头疼的事情,尤其是对于一些大公司和人员变动较大的公司来说,需要经常更换组织结构图,每次变动都要耗费大量的时间和精力去重新绘图。其实绘制织结构图很简单,之所以难是因为没有找对工具和方法!今天小编就教你如何用亿图图示轻松绘制一个既美观又专业的组织结构图!下图是一个简单的组织结构图例子,小编就以此为例,详细讲解一下好看清晰、实用的公司组织结构图是怎么画出来的。1、新建组织结构图2、创建组织结构_书本里印刷的结构图是用什么软件做的

ESP32-C3 BLE5.0 扩展蓝牙名称长度的流程_蓝牙广播名称过长-程序员宅基地

文章浏览阅读1.8k次,点赞4次,收藏5次。BLE5.0 扩展蓝牙名称长度_蓝牙广播名称过长

centos8安装NVIDIA显卡驱动,docker模式运行机器学习_centos8安装显卡驱动-程序员宅基地

文章浏览阅读3.5k次。centos8安装NVIDIA显卡驱动,docker模式运行机器学习_centos8安装显卡驱动

推荐文章

热门文章

相关标签